在新的Android Support Library里面,新增了CoordinatorLayout, AppBarLayout等.

实现的效果: 向下滚动RecylerView,Tab会被隐藏,向上滚动RecylerView,Tab恢复出现.这么做的好处在于,用户能有更多的空间位置去看列表里面的内容.

实现步骤:

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:orientation="vertical">

android:id="@+id/third_activity_toolbar"

android:layout_width="match_parent"

android:layout_height="?attr/actionBarSize"/>

android:id="@+id/tab_layout"

android:layout_width="match_parent"

android:layout_height="wrap_content"

app:layout_scrollFlags="scroll|enterAlways"

app:tabIndicatorColor="@color/medium_blue"

app:tabSelectedTextColor="@color/medium_blue"

app:tabTextAppearance="@style/TabText"

app:tabTextColor="@color/gray_text"/>

android:id="@+id/viewpager"

android:layout_width="match_parent"

android:layout_height="wrap_content"

app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

1) 首先需要用CoordinatorLayout包住AppBarLayout;

2) 顶部区域的View都放在AppBarLayout里面;

3) AppBarLayout外面,CoordinatorLayout里面,放一个带有可滚动的View.如上的例子,放的是ViewPager,而ViewPager里面是放了RecylerView的,即是可以滚动的View.

4) 在AppBarLayout里面的View,通过app:layout_scrollFlags属性来控制,滚动时候的表现.其中有4种Flag的类型.

scroll: this flag should be set for all views that want to scroll off the screen - for views that do not use this flag, they’ll remain pinned to the top of the screen

enterAlways: this flag ensures that any downward scroll will cause this view to become visible, enabling the ‘quick return’ pattern

enterAlwaysCollapsed: When your view has declared a minHeight and you use this flag, your View will only enter at its minimum height (i.e., ‘collapsed’), only re-expanding to its full height when the scrolling view has reached it’s top.

exitUntilCollapsed: this flag causes the view to scroll off until it is ‘collapsed’ (its minHeight) before exiting

上面的例子种用的是 scroll和 enterAlways.

Scroll 表示向下滚动时,这个View会被滚出屏幕范围直到隐藏.

enterAlways 表示向上滚动时,这个View会随着滚动手势出现,直到恢复原来的位置.

5) 在可以滚动的View上设置属性 app:layout_behavior.

该属性的值实际上是一个完整的class名字,而上面例子中的 @string/appbar_scrolling_view_behavior 是Android Support Library 定义后的值,可以被直接使用.

这个Behavior的class是真正控制滚动时候View的滚动行为.我们也可以继承Behavior这个class去实现特有的滚动行为.

6) 代码部分,只需要实现RecylerView的逻辑就可以了.

来源:https://www.cnblogs.com/wingyip/p/4604472.html

android 上滑隐藏view,Android CoordinatorLayout + AppBarLayout(向上滚动隐藏指定的View)相关推荐

  1. android上滑隐藏动画,ListView上滑和下滑,显示和隐藏Toolbar的实现方法

    1.准备Toolbar 先隐藏系统自带的actionbar,在AndroidManifest.xml文件标签中: android:theme="@style/Theme.AppCompat. ...

  2. Android 上滑背景变淡,在Android中,如何平滑地将背景从一种颜色淡化到另一种颜色? (如何使用线程)...

    我已经玩了几个星期的Android编程,我正在尝试一些看起来很简单的工作,但我想我缺少一些东西. 我想做的是让背景从白色到黑色平滑地退色. 我已经尝试了一些事情,没有一个似乎工作. 我做的第一件事是使 ...

  3. android右滑返回动画,Android仿微信右滑返回功能的实例代码

    先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现onTouchEvent来实现. ...

  4. android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法

    今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载.* 具体点,只有当我的listview滑动到最顶部的时候,这时 ...

  5. android 上传pdf文件,Android 加载PDF文件

    今天按项目要求找了一个android的PDF控件,各种操作效果都非常好,在这里和大家分享一下. 用法很简单: 1.在build.gradle里面添加依赖 compile 'com.github.bar ...

  6. android上垂直跑马灯,android textview 垂直滚动and水平跑马灯

    垂直滚动的话就挺简单的.当然了不是自动的垂直滚动.如果是自动的垂直滚动的话还需要自定义.所以如果有需求需要textview 可以垂直滚动的话,那你来这里就对了. 直接贴 代码.就是这么任性. andr ...

  7. sqlite如何在android上编译,如何在Android中使用SQLITE中的准备语句?

    对于Android中准备好的SQLite语句,有SQLiteStatement..准备好的语句可以帮助您提高性能(特别是需要多次执行的语句),还有助于避免注入攻击.看见这篇文章就准备好的发言进行一般性 ...

  8. android 英文日期格式,国际化-基于Android上用户区域设置的日期格式

    当提出问题时,虽然可接受的答案是正确的,但后来却过时了. 我正在做出现代答案. java.time和ThreeTenABP DateTimeFormatter dateFormatter = Date ...

  9. CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout

    CoordinatorLayout CoordinatorLayout相当于一个功能更加强大的FrameLayout,主要有两个用途: 作为顶层布局: 作为协调与子布局之间交互的容器. 通过为子布局指 ...

最新文章

  1. 初学Python——文件操作第三篇
  2. 面试官:CAP都搞不清楚,别跟我说你懂微服务!
  3. 定时器0工作方式1,定时1s
  4. CVPR2021 论文大盘点:全景分割论文汇总(共15篇)
  5. 首先请与所有现有链接到该网络共享的映射断开连接_嘉兴快速路环线时代来了!这12张主城楼盘片区地图,请收好...
  6. Python进程multiprocessing. Process()的使用
  7. HappyLeetcode50:Rotate Array
  8. 疑似realme X9系列神秘新机曝光:搭载骁龙870处理器
  9. 12最后一个正式版_玩机体验:iOS14.3正式版更新了哪些内容,是否值得升级?
  10. mate30支持鸿蒙系统,Mate30不能使用GMS服务,华为P30不能通过谷歌安全认证,华为:鸿蒙系统不远了...
  11. 在PS里怎样使图层居中对齐?
  12. 浅学transcad(与表格链接以及创建矩阵OD并显示期望线)
  13. Mosek 证书更新 - MATLAB
  14. ajax 皇马,历史上最伟大11支球队 西班牙国家队在列 皇马两次入选
  15. 初来乍到,余生请多指教
  16. 用户管理和用户组管理
  17. 暂时性死区(TDZ)
  18. Unity3d游戏中实现阿拉伯语文字正常显示
  19. 通用数据保护条例GDPR今日起正式生效,不会影响机器学习
  20. java使用ftp上传文件

热门文章

  1. APP-V与RemotoAPP
  2. Postfix 配置参数速查
  3. 今晚解决了ActiveSync不能连接到手机的问题,电脑软件没有问题的情况
  4. Java调用Matlab程序
  5. C# int与string转化
  6. 【golang】Go语言学习-select用法
  7. Go游戏服务器开发的一些思考(九):Docker桥接网络及固定IP (二)
  8. 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
  9. Linux TCP队列相关参数的总结
  10. 快速穷举TCP连接欺骗攻击-利用SYN Cookies