布局中listview要覆盖标题栏
int mTouchSlop = ViewConfiguration.get(this).getScaledTouchSlop();//滑动监听showHideTitleBar(true);
ListView standby_lv = (ListView) findViewById(R.id.standby_lv);standby_lv.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) { case MotionEvent.ACTION_DOWN:mFirstY = event.getY();break; case MotionEvent.ACTION_MOVE:mCurrentY = event.getY();if (mCurrentY - mFirstY > mTouchSlop) { // 下滑 显示titleBar showHideTitleBar(true);} else if (mFirstY - mCurrentY > mTouchSlop) { // 上滑 隐藏titleBar showHideTitleBar(false);}break; case MotionEvent.ACTION_UP:break;}return false; }});
private Animator mAnimatorTitle; private Animator mAnimatorTitlePage; private Animator mAnimatorContent; private void showHideTitleBar(boolean tag) {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文件
<dimen name="titlepage_height">45dp</dimen>
以上所述是小编给大家介绍的Android ListView滑动隐藏标题栏的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!