Android 中实现ListView滑动隐藏标题栏的代码
布局中listview要覆盖标题栏
intmTouchSlop=ViewConfiguration.get(this).getScaledTouchSlop(); //滑动监听 showHideTitleBar(true);
ListViewstandby_lv=(ListView)findViewById(R.id.standby_lv);
standby_lv.setOnTouchListener(newView.OnTouchListener(){
@Override
publicbooleanonTouch(Viewv,MotionEventevent){
switch(event.getAction()){
caseMotionEvent.ACTION_DOWN:
mFirstY=event.getY();
break;
caseMotionEvent.ACTION_MOVE:
mCurrentY=event.getY();
if(mCurrentY-mFirstY>mTouchSlop){
//下滑显示titleBar
showHideTitleBar(true);
}elseif(mFirstY-mCurrentY>mTouchSlop){
//上滑隐藏titleBar
showHideTitleBar(false);
}
break;
caseMotionEvent.ACTION_UP:
break;
}
returnfalse;
}
});
privateAnimatormAnimatorTitle;
privateAnimatormAnimatorTitlePage;
privateAnimatormAnimatorContent;
privatevoidshowHideTitleBar(booleantag){
if(mAnimatorTitle!=null&&mAnimatorTitle.isRunning()){
mAnimatorTitle.cancel();
}
if(mAnimatorTitlePage!=null&&mAnimatorTitlePage.isRunning()){
mAnimatorTitlePage.cancel();
}
if(mAnimatorContent!=null&&mAnimatorContent.isRunning()){
mAnimatorContent.cancel();
}
if(tag){
mAnimatorTitle=ObjectAnimator.ofFloat(mTitle,"translationY",mTitle.getTranslationY(),0);
mAnimatorTitlePage=ObjectAnimator.ofFloat(mTitlePage,"translationY",mTitlePage.getTranslationY(),0);
mAnimatorContent=ObjectAnimator.ofFloat(standby_lv,"translationY",standby_lv.getTranslationY(),getResources().getDimension(R.dimen.title_height));
}else{
mAnimatorTitle=ObjectAnimator.ofFloat(mTitle,"translationY",mTitle.getTranslationY(),-mTitle.getHeight());
mAnimatorTitlePage=ObjectAnimator.ofFloat(mTitlePage,"translationY",mTitlePage.getTranslationY(),-mTitlePage.getHeight());
mAnimatorContent=ObjectAnimator.ofFloat(standby_lv,"translationY",standby_lv.getTranslationY(),0);
}
mAnimatorTitle.start();
mAnimatorTitlePage.start();
mAnimatorContent.start();
}
dimen.xml文件
<dimenname="titlepage_height">45dp</dimen>
以上所述是小编给大家介绍的AndroidListView滑动隐藏标题栏的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!