
一直以来对导航栏沉浸式模式一直停留在比较基础的阶段,趁这段时间查漏补缺。浏览网上许多所有沉浸式的文章,现在自己来总结一下我所学到的知识点,方便我之后用到的时候,能够快速利用起来。
看了许多文章,我来大概总结一下,就是想要通过透明或改变颜色等方式改变状态栏的展示形式。
效果展示:
默认显示的颜色是:res ---> values ---> colors --->colorPrimaryDark
效果展示:
效果展示:
效果展示:
只需设置:activitygetWindow()setStatusBarColor(color);
我们知道,在stylesxml文件里面可以设置主题,在主题中设置的一些颜色,将会应用到默认的AppCompat控件上,从而很简单的就可以保持整个APP在UI上的一致性。下面是一个例子:
至于各种控件是如何应用这些颜色设置的,则需要经过更多的尝试了。
比如Activity导航栏默认的图标颜色是colorControlNormal,导航栏的底色是colorPrimary,沉浸式状态栏默认的颜色是colorPrimaryDark;
比如FAB的默认颜色是colorAccent;
比如AppCompatCheckBox默认的选中状态的颜色是colorAccent,而默认的未选择状态的颜色的colorControlNormal;
比如AppCompatSpinner的下拉图标的默认颜色也是colorControlNormal。
其实涉及到的主要的就是下面这几个参数:
那么问题来了,如果你使用蓝色的沉浸式状态栏,导航栏上的图标则使用白色,那在这个Activity中使用AppCompatCheckBox的时候,未选择状态就也是白色的,此时如果在白色的背景色下,用户就看不出这是个AppCompatCheckBox了。这时候怎么办?如下图(图中使用的是AppCompatSpinner):
其实很简单,在这个AppCompatCheckBox上使用app:theme="@style/MyCheckBox",然后在stylesxml中添加新的
但是需要注意的是,这样可能引起控件其他默认属性的变化,比如CheckBox的textSize会变成1(不使用app:theme的时候和APP的默认字体大小一样)。
android:theme和app:popupTheme的作用,以及在android 30以下不起作用问题的解决
查看对应的代码。
一般的代码都是会有明确写明颜色代码,只要找到这个代码就可以知道颜色值了。
找到颜色代码之后可以直接对比颜色选择器上的颜色进行查看。
以上就是关于Android沉浸式全面讲解(一)全部的内容,包括:Android沉浸式全面讲解(一)、Android的supportV7中默认按钮的颜色设置、如何获取color selector当前颜色值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)