Android CoordinatorLayout(四) CoordinatorLayout的常用属性

简介: 前面我用三章讲了CoordinatorLayout的一些用法,常用的就那三四种,如果你还想实现其它的想要的效果,可以好好的了解一些这个控件,甚至看看它的源码,这样你才能真正的玩会它。

前面我用三章讲了CoordinatorLayout的一些用法,常用的就那三四种,如果你还想实现其它的想要的效果,可以好好的了解一些这个控件,甚至看看它的源码,这样你才能真正的玩会它。

接下来我们把上几篇中的一些细节给讲一下,属性什么的。

二、CoordinatorLayout组合中常用到的属性

1. app:layout_scrollFlags

这个属性说是最重要的都不为过,之前的例子中我们都只写了app:layout_scrollFlags = “scroll”,也仅仅说了设置这个属性才能折叠,现在看看是什么含义。
我们找到出现这个属性的地方。你会发现他在AppBarLayout内,所以要在这个Viewgroup内才能设置这个属性

img_7f01df37685b790f17a07eabd39894c9.png
image.png

他定义了这些属性:
(1)public static final int SCROLL_FLAG_SCROLL = 0x1;
(2)public static final int SCROLL_FLAG_EXIT_UNTIL_COLLAPSED = 0x2;
(3)public static final int SCROLL_FLAG_ENTER_ALWAYS = 0x4;
(4)public static final int SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED = 0x8;
(5)public static final int SCROLL_FLAG_SNAP = 0x10;

如果你看API,你会发现这个属性可以设值
scroll(1),enterAlways(3),enterAlwaysCollapsed(4),exitUntilCollapsed(2)
,snap(5)

(1)scroll:就是想要折叠的话必须 必须 必须使用这个值。注意如果在这个child View前面的任何其他Child View没有设置这个值,那么这个Child View的设置将失去作用。
(2)exitUntilCollapsed : 就是设置这个属性的view,你可以给它设置一个最小高度android:minHeight,当它折叠到这个高度时就不会继续折叠。
(3)enterAlways: 如果你设置这个值,当View已经处于折叠状态,你向下滑动时会优先展开。不设置时会先让滑动控件滑到顶部再展开。
(4)enterAlwaysCollapsed :效果就是(2) + (3)的组合
(5)snap : 相当于一个磁铁一样,会吸附。这个很重要,有些别人写的酷炫效果都用到它。如果你会用好这个值,那你做出来的东西肯定逼格很高。

建议:
建议如果有时间自己写个demo把每个属性都试试,如果大家没时间,我推荐这个笔者写的文章,上面有展示GIF,你对着属性就很容理解哪种值对应哪种效果,写得很用心。
http://www.jianshu.com/p/7caa5f4f49bd

2. app:layout_behavior="@string/appbar_scrolling_view_behavior"

这个属性也是一个重要的属性,之前我也只说了,不设置这个的话,会像frameLayout一样重叠。现在就来好好介绍一下这个属性。

简单来说这个属性的意思是:
通知布局中包含滑动组件

怎么说呢?你想想,如果你做一个外层有滑动效果的控件,内部再包含一个有滑动效果的控件,想想,是不是会滑动冲突。而这个属性你可以当成是为了通知整个控件,设置这个属性的会和它产生冲突,让它解决。

你要是有强迫症可以删掉这个属性看看效果。我不会弄gif,展示不了效果,不过我能告诉你删除后会有滑动冲突。不过你也可以利用这个冲突达到一种黑科技的效果。
顺便展示一下源码中的位置吧,感兴趣的可以自己去翻源码。

img_30a23f438f491ad11b4d56f93044c377.png
image.png
img_c553371c57b720fb8558e23f75144cf3.png
image.png
3. android:fitsSystemWindows

有些人写的demo中设置有这个属性,我这里没有,不过还是讲解一下吧。

这个状态可以调节状态栏,也就是你手机最顶的那栏,设置的话能让View根据状态栏来调整自己。

4. app:layout_collapseMode

这个是CollapsingToolbarLayout中用到的,CollapsingToolbarLayout中还有很多属性我不讲,大家可以自己去查然后学习,我就讲我认为最重要的app:layout_collapseMode。
这个属性可以设置两个值,具体例子可以参考Android CoordinatorLayout(二)的demo

(1)pin: 固定模式,在折叠的时候最后固定在顶端
(2)parallax: 视差模式,在折叠的时候会有个视差折叠的效果(就是折叠+渐变)

属性的话我就想介绍这4个,其它的都比较常用,还有一个layout_behavior,这个是写在AppBarLayout中的属性,为了解决卡顿问题。

目录
相关文章
|
9月前
|
Shell API Android开发
android queries属性
android queries属性
600 2
|
9月前
|
XML Java Android开发
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
159 1
|
6月前
|
Android开发
AutoX——当Android中clickable属性显示为false,实际可点击的布局如何处理
AutoX——当Android中clickable属性显示为false,实际可点击的布局如何处理
82 0
|
9月前
|
Java Android开发 C++
Android源代码定制:MK文件执行顺序|属性覆盖
Android源代码定制:MK文件执行顺序|属性覆盖
555 2
Android源代码定制:MK文件执行顺序|属性覆盖
|
9月前
|
缓存 安全 Java
Android中的persistent属性
Android中的persistent属性
419 2
|
9月前
|
Android开发
通过反射方式获取Android设备系统属性
通过反射方式获取Android设备系统属性 【5月更文挑战第1天】
157 2
|
9月前
|
Android开发 C++
Android 系统属性(SystemProperties)
Android 系统属性(SystemProperties)
341 1
|
9月前
|
测试技术 Android开发 开发者
RK3568 Android系统客制化动态替换ro任意属性
RK3568 Android系统客制化动态替换ro任意属性
394 1
|
9月前
|
Android开发
Android android:exported="true" 属性
Android android:exported="true" 属性
1343 0
|
9月前
|
Java Android开发
Android开发--Intent-filter属性详解
Android开发--Intent-filter属性详解
72 0

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 10
    Android学习自定义View(四)——继承控件(滑动时ListView的Item出现删除按钮)