安卓5.1怎么实现沉浸式状态栏

安卓5.1怎么实现沉浸式状态栏,第1张

studio,中引入沉浸式兼容库

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、需要下载下面这两个App

2、打开后你会发现魅族工具箱是红色的,这表明是不能设置沉浸栏。然后你打开Xposed,然后点击激活应用模块,勾选魅族工具箱,然后点击激活。

3、点击激活后会出现安装更新,直接点击安装更新。它会提示你重启你直接重启就行了。重启后你在打开魅族工具箱你会发现变蓝色了,这说明你可以设置沉浸式状态栏了。

4、打开魅族工具箱打开状态栏,前三个都打开就行了,这样沉浸式状态栏就OK啦。看看效果吧!

首先介绍android:windowTranslucentStatus这一属性,设置为true则状态栏变透明(4.4以上手机),此时不做任何处理会出现如图的效果:

可以看出标题栏将状态栏覆盖,很不优雅。

接下来介绍android:fitsSystemWindows这一属性。设置为true让Activity 中setContentView的布局不覆盖状态栏(即相当于给状态栏设置了padding),这个属性要在根布局中使用,如果同时设置了

<item name="android:windowTranslucentStatus">true</item>

android:fitsSystemWindows="true"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11046467.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存