Android 透明状态栏
2016-03-11 19:53
344 查看
在 android 4 系统中可以设置透明状态栏。
但在 android 5.0 以上遇到问题。但问题是可以解决的,需要正确的设置 theme。
但是需要注意一点,5以上可以修改 status bar 的背景颜色,但不能有和 4.4 一样的半透明渐变效果。所以透明的状态栏下,如果整个页面是白色的,状态栏的图标将不可见。
Theme :
这段代码使得状态栏变成了透明,但是奇怪的是,应用底部被虚拟键盘覆盖了。
解决办法是在 layout 里添加一行:
看需要有时也会在顶部加入一个负的 margin 来让界面更紧凑美观
Android 6 可以让状态栏上的图标和文字变灰色。
不用 style 的话可以用代码:
但在 android 5.0 以上遇到问题。但问题是可以解决的,需要正确的设置 theme。
但是需要注意一点,5以上可以修改 status bar 的背景颜色,但不能有和 4.4 一样的半透明渐变效果。所以透明的状态栏下,如果整个页面是白色的,状态栏的图标将不可见。
Theme :
<style name="AppTheme" parent="AppTheme.Base"> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowTranslucentNavigation">true</item> <item name="android:windowTranslucentStatus">false</item> </style>
这段代码使得状态栏变成了透明,但是奇怪的是,应用底部被虚拟键盘覆盖了。
解决办法是在 layout 里添加一行:
android:fitsSystemWindows="true"
看需要有时也会在顶部加入一个负的 margin 来让界面更紧凑美观
android:layout_marginTop="-25dp"
Android 6 可以让状态栏上的图标和文字变灰色。
<item name="android:windowLightStatusBar">true</item>
不用 style 的话可以用代码:
View yourView = findViewById(R.id.your_view); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (yourView != null) { yourView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); } }
相关文章推荐
- Android---universal-image-loader应用
- 拥有大量相同结构Activity的项目精简经验—— ReUsableActivity
- Android-Preproty animation解析
- Android-XML转成View过程简述
- android热补丁初探之二 热补丁分析对比
- Android-Frame Animation介绍
- android onSaveInstanceState方法
- RecyclerView 的研究和使用
- android中px,dp,sp
- Android开发中遇到的字符串、十六进制和Byte转换,及十六进制校验等函数集
- android错误之MediaPlayer用法的Media Player called in state *,androidmediaplayer
- Android模拟器上网
- android PhoneGap跨平台笔记1--helloword
- Android 中常见的小知识总结
- Android之自定义属性
- Android Support Design Library - CoordinatorLayout
- android中的文件(图片)上传
- android开发50个小技巧
- android开发之应用Crash自动抓取Log_自动保存崩溃日志到本地
- android CoordinatorLayout使用