Android开发中,经常需要实现下图状态栏的效果,类似于沉浸式状态栏,但这里仅仅是讨论设置状态栏的颜色和状态栏上面文字、图标的颜色的方法。
Android 44(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 60(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。所以会导致一个问题,在 44 到 60 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清,像下面这样:
有一些第三方的系统提供了设置状态栏和状态栏文字、图标颜色的方法,比如小米的MIUI和魅族的Flyme,所以考虑了下比较好的实现方式是:
当然,这里面也会有坑,比如 MIUI 提供的修改状态栏字体颜色方法会跟 Android 系统自带的方法冲突,官方说明如下: 关于MIUI状态栏字符颜色逻辑调整说明
经过网上的资料和自己的尝试,MIUI 系统还是同时使用 MIUI 提供的方法和 Android 系统自带的方法来修改状态栏字体颜色比较保险。
基于上面的思考,封装了设置 Android 44 以上系统状态栏颜色和状态栏字体、图标颜色的方法:
要在 Application Theme 加上 <item name="android:fitsSystemWindows">true</item> ,不然页面会顶到状态栏上面,或者在 Activity 的布局里面加上 android:fitsSystemWindows="true" 和 android:clipToPadding="false" 也可以。
最终实现的效果如下:
大家有更好的方案可以告诉我~
在支持沉浸式状态栏的软件中,状态栏的颜色会随场景而变化;可以通过更换全局主题来改变状态栏在部分场景的颜色。
非安卓50系统或不支持全局主题机型的状态栏颜色大多是白色或黑色,且不能更换。
我们都知道iPhone手机上面的状态栏颜色默认是黑色的,但是有些界面顶部是一些,或者刚好是暗色的背景的时候,那么此时就看不到状态栏的字了,这个时候就很尴尬了,所以我们就需要去修改状态栏的颜色修改成白色
网上还多人云亦云的什么在plist文件里面改属性,然后在项目启动的时候设置
[application setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
但是我们会发现,这种方法太死板了。而且在iOS9之后,这个方法就已经被苹果粑粑废弃了,推荐使用的是这么一个方法
- (UIStatusBarStyle)preferredStatusBarStyle{ }
这里我总结了一个小技巧,就是直接给UINavigationController 写一个分类方法在这个分类里面重写
- (UIStatusBarStyle)preferredStatusBarStyle{ } 这个方法,如果你需要默认颜色是黑色这里就返回
UIStatusBarStyleDefault,反之要白色的话就返回UIStatusBarStyleLightContent
当然项目中肯定不全是黑色状态栏或者白色状态栏,那么就需要你在你需要改变的界面直接重写这个方法即可
如果你在某一个界面需要有不同颜色,那么在那个界面重写最后一个方法就ok啦。这样是不是很简单呢。
这样比之前iOS9之前什么viewWillAppear 和viewWillDissAppear 反复设置简单快捷!
WIN7任务栏颜色变浅变白了调回来的具体步骤如下:
我们需要准备的材料分别是:电脑。
1、首先我们右键单击电脑桌面空白的地方,打开“个性化”。
2、然后我们在弹出来的窗口中点击打开下方的“窗口颜色”。
3、然后我们在弹出来的窗口中点击“颜色浓度”后面的滑动图标,向右滑动即可。
windows10任务栏颜色需要在个性化设置中更改。
1、在电脑桌面中,点击鼠标右键,打开右键菜单。
2、在鼠标右键菜单里,选择个性化。
3、然后点击颜色选项。
4、选择需要更改的颜色。
5、效果如图所示,更改完毕。
您好,很高兴为您解答。
安装Xposed框架,后安装模块
重力工具箱。就可以啦
(ps只能用红牛专用xposed,其他全部无法重启。)
如若满意,请点击右侧采纳答案,如若还有问题,请点击追问
希望我的回答对您有所帮助,望采纳!
~
O(∩_∩)O~
欢迎分享,转载请注明来源:品搜搜测评网