android 上滑隐藏view,Android CoordinatorLayout + AppBarLayout(向上滚动隐藏指定的View)
在新的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)相关推荐
- android上滑隐藏动画,ListView上滑和下滑,显示和隐藏Toolbar的实现方法
1.准备Toolbar 先隐藏系统自带的actionbar,在AndroidManifest.xml文件标签中: android:theme="@style/Theme.AppCompat. ...
- Android 上滑背景变淡,在Android中,如何平滑地将背景从一种颜色淡化到另一种颜色? (如何使用线程)...
我已经玩了几个星期的Android编程,我正在尝试一些看起来很简单的工作,但我想我缺少一些东西. 我想做的是让背景从白色到黑色平滑地退色. 我已经尝试了一些事情,没有一个似乎工作. 我做的第一件事是使 ...
- android右滑返回动画,Android仿微信右滑返回功能的实例代码
先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的), 这些可以实现onTouchEvent来实现. ...
- android列表滑到底部,Android中判断listview是否滑动到顶部和底部的实现方法
今天实现listview的下拉刷新和上拉加载的时候,遇到了一个问题,*就是说需要根据listview中滑动的位置来进行下拉刷新和上拉加载.* 具体点,只有当我的listview滑动到最顶部的时候,这时 ...
- android 上传pdf文件,Android 加载PDF文件
今天按项目要求找了一个android的PDF控件,各种操作效果都非常好,在这里和大家分享一下. 用法很简单: 1.在build.gradle里面添加依赖 compile 'com.github.bar ...
- android上垂直跑马灯,android textview 垂直滚动and水平跑马灯
垂直滚动的话就挺简单的.当然了不是自动的垂直滚动.如果是自动的垂直滚动的话还需要自定义.所以如果有需求需要textview 可以垂直滚动的话,那你来这里就对了. 直接贴 代码.就是这么任性. andr ...
- sqlite如何在android上编译,如何在Android中使用SQLITE中的准备语句?
对于Android中准备好的SQLite语句,有SQLiteStatement..准备好的语句可以帮助您提高性能(特别是需要多次执行的语句),还有助于避免注入攻击.看见这篇文章就准备好的发言进行一般性 ...
- android 英文日期格式,国际化-基于Android上用户区域设置的日期格式
当提出问题时,虽然可接受的答案是正确的,但后来却过时了. 我正在做出现代答案. java.time和ThreeTenABP DateTimeFormatter dateFormatter = Date ...
- CoordinatorLayout + AppBarLayout + CollapsingToolbarLayout
CoordinatorLayout CoordinatorLayout相当于一个功能更加强大的FrameLayout,主要有两个用途: 作为顶层布局: 作为协调与子布局之间交互的容器. 通过为子布局指 ...
最新文章
- 初学Python——文件操作第三篇
- 面试官:CAP都搞不清楚,别跟我说你懂微服务!
- 定时器0工作方式1,定时1s
- CVPR2021 论文大盘点:全景分割论文汇总(共15篇)
- 首先请与所有现有链接到该网络共享的映射断开连接_嘉兴快速路环线时代来了!这12张主城楼盘片区地图,请收好...
- Python进程multiprocessing. Process()的使用
- HappyLeetcode50:Rotate Array
- 疑似realme X9系列神秘新机曝光:搭载骁龙870处理器
- 12最后一个正式版_玩机体验:iOS14.3正式版更新了哪些内容,是否值得升级?
- mate30支持鸿蒙系统,Mate30不能使用GMS服务,华为P30不能通过谷歌安全认证,华为:鸿蒙系统不远了...
- 在PS里怎样使图层居中对齐?
- 浅学transcad(与表格链接以及创建矩阵OD并显示期望线)
- Mosek 证书更新 - MATLAB
- ajax 皇马,历史上最伟大11支球队 西班牙国家队在列 皇马两次入选
- 初来乍到,余生请多指教
- 用户管理和用户组管理
- 暂时性死区(TDZ)
- Unity3d游戏中实现阿拉伯语文字正常显示
- 通用数据保护条例GDPR今日起正式生效,不会影响机器学习
- java使用ftp上传文件