Android CoordinatorLayout + AppBarLayout(向上滚动隐藏指定的View)
来源:互联网 发布:tensorflow graph 编辑:程序博客网 时间:2024/04/28 07:32
在新的Android Support Library里面,新增了CoordinatorLayout, AppBarLayout等.
实现的效果: 向下滚动RecylerView,Tab会被隐藏,向上滚动RecylerView,Tab恢复出现.这么做的好处在于,用户能有更多的空间位置去看列表里面的内容.
实现步骤:
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
android.support.design.widget.coordinatorlayout
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.support.design.widget.appbarlayout
android:layout_width
=
"match_parent"
android:layout_height
=
"wrap_content"
android:orientation
=
"vertical"
>
<
android.support.v7.widget.toolbar
android:id
=
"@+id/third_activity_toolbar"
android:layout_width
=
"match_parent"
android:layout_height
=
"?attr/actionBarSize"
/>
<
android.support.design.widget.tablayout
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.support.design.widget.appbarlayout
>
<
android.support.v4.view.viewpager
android:id
=
"@+id/viewpager"
android:layout_width
=
"match_parent"
android:layout_height
=
"wrap_content"
app:layout_behavior
=
"@string/appbar_scrolling_view_behavior"
/>
</
android.support.design.widget.coordinatorlayout
>
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 screenenterAlways
: this flag ensures that any downward scroll will cause this view to become visible, enabling the ‘quick return’ patternenterAlwaysCollapsed
: 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的逻辑就可以了.
示例源码下载
扩展阅读
- android CoordinatorLayout使用
- CoordinatorLayout简述
- CoordinatorLayout + AppBarLayout + ToolBar
- CoordinatorLayout Behaviors使用说明[翻译]
- Android CoordinatorLayout + AppBarLayout+ToolBar(向上滚动隐藏指定的View)
- Android CoordinatorLayout + AppBarLayout(向上滚动隐藏指定的View)
- android 界面滑动隐藏(CoordinatorLayout+AppBarLayout)
- android 控件 隐藏toolbar-(CoordinatorLayout Toolbar AppbarLayout)
- CoordinatorLayout+AppBarLayout隐藏标题栏
- Android Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏
- Android CoordinatorLayout + AppBarLayout
- CoordinatorLayout+AppBarLayout的使用
- Android MD: CoordinatorLayout AppBarLayout CollapsingToolbarLayout
- Android 初识AppBarLayout 和 CoordinatorLayout
- CoordinatorLayout + AppBarLayout实现滑动隐藏ToolBar
- Android Material Design(5) CoordinatorLayout,AppBarLayout,Toolbar,CollapsingToolbarLayout的使用
- CoordinatorLayout嵌套AppBarLayout的使用
- coordinatorLayout 和AppBarLayout的踩坑记
- CoordinatorLayout的AppBarLayout和CollapsingToolbarLayout
- CoordinatorLayout + AppBarLayout + NestScrollView 向上滑动卡顿问题解决方案
- Android Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar
- Android Material Design之CoordinatorLayout+AppBarLayout实现上滑隐藏ToolBar
- 防线Defense Lines
- 安卓开发者选项菜单里的动画选项都代表什么含义?
- Apache服务以及httpd.conf配置详解
- vim插件安装
- SQL基本操作
- Android CoordinatorLayout + AppBarLayout(向上滚动隐藏指定的View)
- 【小米澎湃 S1 芯片、小米5c 发布】
- 利用View自身的方法实现倒计时功能
- 安卓客户端带密码压缩或者解压zip文件
- MPLS简介
- python3-Django项目发布后通过ip地址不能访问
- 再论WGS84、ITRF2008及NavCom StarFire
- 共享单车非共享经济!!!
- 开始学习java和oracle