我正在研究棒棒糖,我知道如何通过设置此标志FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
并通过以下方式设置颜色来为状态栏着色getWindow().setStatusBarColor(color);
但是我有一个图像和一个透明的ActionBar
,我想将图像显示在操作栏的后面,并且当用户滚动图像下方的ListView
时,状态栏应填充为ActionBar
的颜色
问题是在状态栏后面显示图像,并在以后用颜色滚动填充状态栏后显示图像。我不知道如何达到这种效果。
任何帮助将不胜感激
首先,您必须在style.xml上添加TranslucentActionBar样式
<style name="AppTheme.TranslucentActionBar">
<item name="android:actionBarStyle">@style/Widget.ActionBar.Transparent</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="actionBarStyle">@style/Widget.ActionBar.Transparent</item>
<item name="windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
<!-- <item name="windowContentOverlay">@null</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);
}
接下来,在setContentView()之前的OnCreate方法中添加此>
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); }
然后状态栏将覆盖您的活动。
添加滚动侦听器并添加这样的设置状态栏alpha方法。
getWindow().setStatusBarColor(Color.argb(alpha, 253, 152, 0));
您需要使用以下标志来使系统栏透明并覆盖它:
只需将此代码复制到您的onCreate