我搜索了 文档 ,但只找到了这个: Link。哪个是用来使酒吧 半透明 的?我要做的是使状态栏 完全透明 (如下图所示)并使其向后兼容 APK<19:
我的样式.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>
我能做的:
您需要做的就是在您的主题中设置这些属性:
<item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentNavigation">true</item>
您希望拥有透明状态栏的活动/容器布局需要此属性集:
android:fitsSystemWindows="true"
通常不可能在 pre-kitkat 上确定执行此操作,看起来您可以执行此操作,但一些奇怪的代码使其如此。
编辑:我会推荐这个库:https ://github.com/jgilfelt/SystemBarTint用于大量的棒棒糖前状态栏颜色控制。
经过深思熟虑后,我了解到完全禁用棒棒糖状态栏和导航栏上的半透明或任何颜色的答案是在窗口上设置此标志:
// In Activity's onCreate() for instance if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Window w = getWindow(); w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); }
不需要其他主题,它会产生如下内容: