实现4.4以上的状态栏变色
2016-03-03 17:33
316 查看
文/BlackSwift(简书作者)
原文链接:http://www.jianshu.com/p/4f71b98dd6f9
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
本文是目前最好的方案,没有之一,不需要借助开源库手动在viewgroup(and roid.R.id.content)中塞一个丑陋的填充view,也不用设置任何复杂的xml,直接一行全部搞定
本文章适用于:
处理4.4以上的沉浸
处理6.0以上的沉浸与字体颜色,5.0只可以处理沉浸而不能改字体颜色(故不建议用白色背景)
调用私有API处理小米魅族的状态栏字体颜色
获取状态栏高度
状态栏背景取决于你的Toolbar
另外提供Toolbar的高度自动适配作为参考
关键词:
本文的沉浸是广义上的,特指statusbar与Activiy的windows重叠到一起,而且背景是透明的,而且电池等图标可见
Flyme 4.4
原文链接:http://www.jianshu.com/p/4f71b98dd6f9
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
本文是目前最好的方案,没有之一,不需要借助开源库手动在viewgroup(and roid.R.id.content)中塞一个丑陋的填充view,也不用设置任何复杂的xml,直接一行全部搞定
本文章适用于:
处理4.4以上的沉浸
处理6.0以上的沉浸与字体颜色,5.0只可以处理沉浸而不能改字体颜色(故不建议用白色背景)
调用私有API处理小米魅族的状态栏字体颜色
获取状态栏高度
状态栏背景取决于你的Toolbar
另外提供Toolbar的高度自动适配作为参考
关键词:
Kitkat,
Lollipop,
状态栏字体,
沉浸状态栏,
透明状态栏,
Translucent statusbar,
Transparent statusbar,
statusbar text color
本文的沉浸是广义上的,特指statusbar与Activiy的windows重叠到一起,而且背景是透明的,而且电池等图标可见
截图
Flyme 4.4
方法一:状态栏的使用
在Activity中设置如下即可,注意xml/style中不用写任何关于状态栏的属性(特别是fitsSystemWindows这个属性),直接拿来用就可以@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); StatusbarUtils.from(this) //沉浸状态栏 .setTransparentStatusbar(true) //白底黑字状态栏 .setLightStatusBar(true) //设置toolbar,actionbar等view .setActionbarView(mNavigationBar) .process(); }
方法二:view的单独使用
下面代码是在4.4以上自动增长了状态栏的高度,需要在xml中加入windowIsTranslucent属性即可。
//某个View的构造函数中的调用 public void setFitTranslucent(final boolean translucent) { post(new Runnable() { @Override public void run() { if (StatusbarUtils.isLessKitkat() || !translucent) { return; } int height = StatusbarUtils.getStatusBarOffsetPx(getContext()); setPadding(getPaddingLeft(), height + getPaddingTop(), getPaddingRight(), getPaddingBottom()); getLayoutParams().height += height; } }); }
相关文章推荐
- android学习之LayoutParams
- 《Unix环境高级编程》学习笔记:从点到面总结
- 算法:二叉树的先序遍历、中序遍历、后序遍历(递归及非递归方式)的java代码实现
- java泛型
- Java 入门 之 多线程的 start 和 run 方法
- Leetcode ☞ 328. Odd Even Linked List ☆
- 百度地图
- iOS开发中app之间的跳转
- iOS之多线程开发(NSThread,NSOperation,GCD)
- 开篇
- 对象key值为数字时的处理
- php web 信息采集
- Nginx+CI出现404错误
- java 修改字体大小
- Asp.Net MVC Views页面不包含“GetEnumerator”的公共定义
- 有序链表
- android标题栏RadioButton实现,下面展示切换viewpager,fragment,内容是listview
- LTE的关键任务网
- 《C和指针》学习备忘总结
- leetcode:Merge k Sorted Lists 【Java】