compile ‘com.readystatesoftware.systembartint:systembartint:1.0.3’
eclipse,可以导入相应的那个类。
第一类,兼容actionbar
第一步:设置activity主题android:theme=”@style/ActionBarTheme”
<style name="ActionBarTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
</style>
<style name="ActionBarStyle" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/actionbar_bg</item>
</style>
第二步:设置状态栏透明,然后设置状态栏沉浸的颜色
@TargetApi(19)
private void setTranslucentStatus(boolean on) {
Window win = getWindow()
WindowManager.LayoutParams winParams = win.getAttributes()
final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
if (on) {
winParams.flags |= bits
} else {
winParams.flags &= ~bits
}
win.setAttributes(winParams)
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
setTranslucentStatus(true)
}
SystemBarTintManager tintManager = new SystemBarTintManager(this)
tintManager.setStatusBarTintEnabled(true)
//设置沉浸的颜色tintManager.setStatusBarTintResource(R.color.statusbar_bg)}
第三步:设置适应windows,在布局文件设置
android:fitsSystemWindows=”true”
如果不设置,应用的ui会顶上去,顶进system ui
ok
第二类 没有actionbar的activity
第一步,设置主题,android:theme=”@style/FullBleedTheme”
<style name="FullBleedTheme" parent="android:Theme.Holo.Light.NoActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
<style name="FullBleedTheme" parent="android:Theme.Holo.Light.NoActionBar.TranslucentDecor">
<!-- API 19 theme customizations can go here. -->
</style>
或者
用toolbar只能设置Theme.AppCompat.NoActionBar主题
<style name="AppThemeToolbar" parent="Theme.AppCompat.NoActionBar">
<item name="colorPrimary">#2196F3</item>
<item name="colorPrimaryDark">#2196F3</item>
<!--<item name="colorPrimaryDark">#1565C0</item>-->
<item name="colorAccent">#E91E63</item>
</style>
第二步:同上一个第二步。
设置状态栏透明+颜色
mTintManager = new SystemBarTintManager(this)
mTintManager.setStatusBarTintEnabled(true)
mTintManager.setNavigationBarTintEnabled(true) mTintManager.setStatusBarTintResource(R.color.statusbar_bg)
1、需要下载下面这两个App2、打开后你会发现魅族工具箱是红色的,这表明是不能设置沉浸栏。然后你打开Xposed,然后点击激活应用模块,勾选魅族工具箱,然后点击激活。
3、点击激活后会出现安装更新,直接点击安装更新。它会提示你重启你直接重启就行了。重启后你在打开魅族工具箱你会发现变蓝色了,这说明你可以设置沉浸式状态栏了。
4、打开魅族工具箱打开状态栏,前三个都打开就行了,这样沉浸式状态栏就OK啦。看看效果吧!
首先介绍android:windowTranslucentStatus这一属性,设置为true则状态栏变透明(4.4以上手机),此时不做任何处理会出现如图的效果:可以看出标题栏将状态栏覆盖,很不优雅。
接下来介绍android:fitsSystemWindows这一属性。设置为true让Activity 中setContentView的布局不覆盖状态栏(即相当于给状态栏设置了padding),这个属性要在根布局中使用,如果同时设置了
<item name="android:windowTranslucentStatus">true</item>
android:fitsSystemWindows="true"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)