安卓沉浸式(透明)状态栏学习小结
来源:互联网 发布:dazelu com域名更换 编辑:程序博客网 时间:2024/05/21 10:38
想做出好看的界面,看到扣扣界面状态栏和toolbar(Actionbar)颜色一样,就查了一下:
沉浸状态栏
就是顶部状态栏变得透明,背景变为activity的背景;
要求版本是5.0以上,不过现在应该没有不符合的了(minsdk 21)
第一步
以下二选一
**一** java文档里改
if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); getWindow().setStatusBarColor(Color.TRANSPARENT); }
这个需要在每一个activity里写,在`setContentView(R.layout.XXX)`后面声明就可以 **二** 在style里改,在style里增加一个新项
<item name="android:windowTranslucentStatus">true</item>
在style的theme里增加这一项,所有使用这个theme的activity都自动这样
第二步
写到这里运行就会发现一些问题,如图
可以看到,状态栏的颜色变了,但是actionbar却被挤压了,这是因为状态栏透明后,整个布局向上平移,却不能遮盖状态栏,因此就挤压了actionbar里面的内容
改进方法,在activity布局里的第一个组件里增加一句
android:fitsSystemWindows="true"
这样就会发现上部给状态栏留出了空隙## **第三步** ## 这时候会发现还是有bug,第一,当第一个布局是toolbar时,第二步无效; 第二,当有drawlayout时,只有drawlayout有这种效果,主界面没有;第三,当含有include布局时,各种bug 所以直接来最终方法:第二部的就是为了给状态栏留一个空间,可以直接在第一个布局上声明状态栏的高度是25dp, 我们直接留出25dp就可以了,所以只需1.3两步就可以了 *然后又想起一个问题,当有抽屉布局时对于主界面这个效果是无法实现的,因为有drawlayout的通常只有一个,所以可以把theme的 colorparimydark设置成和这个activity的actionbar颜色一样,也算投机取巧吧*
到此结束,感觉界面的坑好深好深
阅读全文
0 0
- 安卓沉浸式(透明)状态栏学习小结
- 安卓学习笔记--- Android 沉浸式状态栏的实现方法,状态栏透明实现
- 安卓沉浸式状态栏延生与透明设置
- 安卓沉浸透明状态栏导航栏
- 安卓学习笔记---Android 系统状态栏沉浸式/透明化完整解决方案
- 透明状态栏(沉浸式状态栏)
- Android沉浸式状态栏(透明状态栏)
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 沉浸式状态栏/透明状态栏
- 透明状态栏(沉浸式状态栏)
- 安卓状态栏问题详解大全(沉浸式状态栏)
- 关于双系统linux和windows删除linux系统丢失系统引导的问题
- Atiitt uke发展战略规划十三五规划纲要 attilax总结
- PAT 甲级 1011. World Cup Betting (20)
- VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射
- bazel支持proxy代理
- 安卓沉浸式(透明)状态栏学习小结
- jeesite 如何读取属性文件
- 141. Linked List Cycle。
- JetBrains IDEA2017下载与安装
- 从视频中抽几张图
- 牛顿迭代公式计算平方根立方根
- 组内相关系数(ICC)在重复测量数据中的解释
- 画重点,Java方法的参数到底是值传递还是引用传递?
- 1003. 我要通过!(20)