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

以上是 Android 中实现ListView滑动隐藏标题栏的代码 的全部内容, 来源链接: utcz.com/z/329687.html

回到顶部