我搜索了文档,但只找到了这个:
链接。这是用来使酒吧半透明?我想做的是使状态栏完全透明(如下图所示),并使它向后兼容APK<19:
我的styles.xml:
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ThemeActionBar</item>
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="actionBarStyle">@style/ThemeActionBar</item>
<item name="windowActionBarOverlay">true</item>
</style>
<style name="ThemeActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid">
<item name="android:background"> @null </item>
<!-- Support library compatibility -->
<item name="background">@null</item>
<item name="android:displayOptions"> showHome | useLogo</item>
<item name="displayOptions">showHome|useLogo</item>
</style>
</resources>
我能做的是:
简单明了,适用于几乎所有用例(API级别16及以上):
在你的应用主题中使用下面的标签使状态栏透明:
<项目名称= " android: statusBarColor " > @android:颜色/透明> < /项目
然后在你的活动的onCreate方法中使用这段代码。
查看decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
这就是你所需要做的一切;)
您可以从开发人员文档中了解更多信息。我也推荐你阅读这篇博文。
芬兰湾的科特林代码:
val decorView = window.decorView
decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
看看我的另一个答案
有三个步骤:
1)只需使用此代码段到你的OnCreate方法
// FullScreen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
如果你正在使用Fragment,你应该把这个代码段放在你活动的OnCreate方法中。
2)确保在/res/values-v21/styles.xml中设置透明度:
<item name="android:statusBarColor">@android:color/transparent</item>
或者你可以通过编程来设置透明度:
getWindow().setStatusBarColor(Color.TRANSPARENT);
3)无论如何你都应该在styles.xml中添加代码段
<item name="android:windowTranslucentStatus">true</item>
注意:此方法仅适用于API 21及以上版本。