安卓AppBarLayout和Toolbar和CollapsingToolbarLayout详解及设置图片透明状态栏
来源:互联网 发布:opengl es shader编程 编辑:程序博客网 时间:2024/05/22 18:56
1.Toolbar
1>Toobar主要是用来替换ActionBar的,可以隐藏ToolBar,在style.xml的AppTheme中加入
<item name="windowActionBar">false</item><item name="windowNoTitle">true</item>2>ToolBar的布局文件
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:background="?attr/colorPrimary" android:layout_height="?android:attr/actionBarSize" />
3>ToolBar的java文件相关设置 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle("这里是Title"); toolbar.setSubtitle("这里是子标题"); toolbar.setLogo(R.drawable.icon); setSupportActionBar(toolbar);
4>关于ToolBar hongyang大神有篇博客写的挺好的《 Android 5.x Theme 与 ToolBar 实战 》可以去参考一下。5>ToolBar和ActionBar感觉差不多,为什么要代替ActionBar呢?
正如你所看的这样,Toolbar根本就不够看的,一点都不复杂。接下来我们继续学习在Toolbar上面再套一层父View,让Toolbar更有互动性。
2.AppBarLayout
1>关于AppBarLayout
AppBarLayout继承自LinearLayout,布局方向为垂直方向。所以你可以把它当成垂直布局的LinearLayout来使用。AppBarLayout是在LinearLayou上加了一些材料设计的概念,它可以让你定制当某个可滚动View的滚动手势发生变化时,其内部的子View实现何种动作。
解释:某个可滚动View假设为ScrollView
也就是说ScrollView发生滚动时,你可以定制你的“顶部栏”应该执行哪些动作(如跟着一起滚动、保持不动等等)。那某个可移动的View到底是哪个可移动的View呢?这是由你自己指定的
2>AppBarLayout子View的属性设置
内部的子View通过在布局中加
app:layout_scrollFlags
设置执行的动作1) scroll
:值设为scroll
的View会跟随滚动事件一起发生移动。
2) enterAlways
:值设为enterAlways
的View,当ScrollView往下滚动时,该View会直接往下滚动。而不用考虑ScrollView是否在滚动。
3) exitUntilCollapsed
:值设为exitUntilCollapsed
的View,当这个View要往上逐渐“消逝”时,会一直往上滑动,直到剩下的的高度达到它的最小高度后,再响应ScrollView的内部滑动事件。
4) enterAlwaysCollapsed
:是enterAlways
的附加选项,一般跟enterAlways
一起使用,它是指,View在往下“出现”的时候,首先是enterAlways
效果,当View的高度达到最小高度时,View就暂时不去往下滚动,直到ScrollView滑动到顶部不再滑动时,View再继续往下滑动,直到滑到View的顶部结束。
3> 将AppBarLayout与ScrollView结合使用
Android帮我们写好啦,我们直接用就是了,这个ScrollView就是NestedScrollView
把NestedScrollView放入到我们的layout文件里面就可以啦
<android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <!--将你的内容放在这里--> </android.support.v4.widget.NestedScrollView>
3 CollapsingToolbarLayout
CollapsingToolbarLayout
是用来对Toolbar
进行再次包装的ViewGroup
主要是用于实现折叠(其实就是看起来像伸缩~)的App Bar效果
它需要放在AppBarLayout
布局里面,并且作为AppBarLayout
的直接子View
1>CollapsingToolbarLayout
主要包括几个功能
(1) 折叠Title(Collapsing title):当布局内容全部显示出来时,title是最大的,但是随着View逐步移出屏幕顶部,title变得越来越小。你可以通过调用setTitle函数来设置title。
(2)内容纱布(Content scrim):根据滚动的位置是否到达一个阀值,来决定是否对View“盖上纱布”。可以通过setContentScrim(Drawable)来设置纱布的图片.
(3)状态栏纱布(Status bar scrim):根据滚动位置是否到达一个阀值决定是否对状态栏“盖上纱布”,你可以通过
setStatusBarScrim(Drawable)
来设置纱布图片,但是只能在LOLLIPOP
设备上面有作用。(4)视差滚动子View(Parallax scrolling children):子View可以选择在当前的布局当时是否以“视差”的方式来跟随滚动。(PS:其实就是让这个View的滚动的速度比其他正常滚动的View速度稍微慢一点)。将布局参数
app:layout_collapseMode
设为parallax
(5)将子View位置固定(Pinned position children):子View可以选择是否在全局空间上固定位置,这对于Toolbar来说非常有用,因为当布局在移动时,可以将Toolbar固定位置而不受移动的影响。 将
app:layout_collapseMode
设为pin
。
2>
CollapsingToolbarLayout
使用ImageView实现透明状态栏如何实现?其实很简单,只需要给CollapsingToolbarLayout里面的背景图片(ImageView)设置个属性就可以了Android:fitsSystemWindows="true"
- 安卓AppBarLayout和Toolbar和CollapsingToolbarLayout详解及设置图片透明状态栏
- CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar实现渐变透明的状态栏
- AppBarLayout,CollapsingToolbarLayout以及Toolbar
- AppBarLayout、CollapsingToolbarLayout以及Toolbar
- AppBarLayout+ToolBar+CollapsingToolbarLayout+NestedScrollView
- CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar
- Transparent(透明的Toolbar) AppBarLayout and CollapsingToolbarLayout
- CoordinatorLayout、Toolbar、CollapsingToolbarLayout、AppBarLayout和NestedScrollView组合滑动折叠或拉伸Toolbar的demo
- AppBarLayout和CollapsingToolbarLayout第二波
- CoordinatorLayout的AppBarLayout和CollapsingToolbarLayout
- Android Material 之CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout、Toolbar 等的说明和使用
- Toolbar、AppBarLayout、CollapsingToolbarLayout分步解析
- 设置toolbar和系统状态栏颜色一致
- CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+Toolbar用法小结
- CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout、Toolbar混合使用经验
- # 安卓透明状态栏
- Android CollapsingToolbarLayout设置背景图片后如何透明状态栏
- DrawerLayout+Toolbar的使用及状态栏透明
- 为什么html5技术优势如此明显?
- C++学习笔记7 : 变量命名规则及类型
- 根据url获取请求中的cookie
- ActiveMQ高可用集群方案
- Linux中的定时任务
- 安卓AppBarLayout和Toolbar和CollapsingToolbarLayout详解及设置图片透明状态栏
- 事件绑定,事件冒泡和事件代理详解
- Qt中遇到的一些问题总结
- 修复IE浏览器的常用方法
- [QA] Ceph-deploy 安装 Ceph 环境报错分析
- 用户注册登录案例分析以及简单实现
- 【Unity技巧】四元数(Quaternion)和旋转
- iOS 后台运行实现总结
- 加解密、PKI与CA基础