因为项目使用到toolbar,因此研究了一下。 android
首先,设置apptheme app
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!--状态栏颜色,仅5.0有用--> <item name="colorPrimaryDark">@color/background_main</item> <!--Toolbar颜色--> <item name="colorPrimary">@color/background_toolbar</item> <!--返回键样式--> <item name="drawerArrowStyle">@style/AppTheme.DrawerArrowToggle</item> </style>
发现这种效果,在android studio的预览里面显示正常,可是实际运行到4.4上,状态栏仍是黑色的。 布局
在网上找了许久,找到了一些资料。 ui
在当前应用透明主题的activity中的onCreate中添加以下代码 spa
//设置状态栏透明 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //透明状态栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); //透明导航栏 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }
运行以后app的view直接从屏幕顶端开始布局了。 code
因而在layout里设置该两个属性 ip
android:fitsSystemWindows="true" android:clipToPadding="true"
再次运行以后,状态栏透明了,状态栏颜色应用如今app主题颜色。 get
又强制设置主题颜色 it
在apptheme中,添加 io
<item name="android:windowBackground">@color/background_main</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
最后再次运行,发现4.4的程序状态栏能够有我想要的结果了。
若是大神们有好的方法,也能够指导一下。