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滑动隐藏标题栏的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!