软件编程
位置:首页>> 软件编程>> Android编程>> Android 中实现ListView滑动隐藏标题栏的代码

Android 中实现ListView滑动隐藏标题栏的代码

作者:Wo来给你讲故事  发布时间:2023-05-13 22:27:08 

标签:listview,滑动,隐藏,标题栏

布局中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滑动隐藏标题栏的实例代码网站的支持!

来源:http://blog.csdn.net/baidu_35124863/article/details/54600611

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com