我希望在主要活动中使用状态栏和导航栏Translucent,而所有其他活动都使用Material Design。
到目前为止我得到的是:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
但结果是:
我甚至尝试将颜色设置为透明:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(getResources().getColor(android.R.color.transparent));
window.setNavigationBarColor(getResources().getColor(android.R.color.transparent));
}
但我没有得到渐变的阴影,我正在寻找导航按钮和状态栏上的图标可见:
想法?
答案 0 :(得分:8)
我解决了这个问题。
我创建了一个drawable,模拟我正在寻找的阴影并将其作为壁纸,同时使状态栏和导航栏透明:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = this.getWindow();
Drawable background = this.getResources().getDrawable(R.drawable.background);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(getResources().getColor(android.R.color.transparent));
window.setNavigationBarColor(getResources().getColor(android.R.color.transparent));
window.setBackgroundDrawable(background);
}
结果如下:
答案 1 :(得分:1)
来自Android Lollipop,它是完全半透明的,没有任何阴影。因此,您应该使用#33000000这样的颜色来获得状态栏中的阴影。
修改强>
我认为您只能为状态栏设置颜色。但是你可以添加一个带有渐变可绘制的ImageView,只有当你在棒棒糖上时才显示它。状态栏高25dp。我认为这也有一个属性,但我不知道。这样就可以在状态栏中模拟渐变。