本文通过实例代码给大家分享了 android listview 滑动隐藏标题栏的方法,代码简单易懂,需要的朋友参考下
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
布局中 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 滑动隐藏标题栏的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 PHPERZ 网站的支持!
来源: