我在我的风格中使用了以下内容来使状态栏透明:
<style name="TransparentStatusBar" parent="ThemeBase">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
</style>
但是现在屏幕顶部有一个阴影,状态栏是:
如何删除此影子?
修改
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/primary"
app:layout_scrollFlags="scroll|enterAlways"
app:theme="@style/ToolbarTheme"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
/>
的活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResource());
toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(ContextCompat.getDrawable(this, R.drawable.ic_action_back));
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
}
}
ToolbarTheme:
<style name="ToolbarTheme" parent="ThemeBase">
<item name="android:textColorPrimary">@color/white</item>
</style>
答案 0 :(得分:8)
晚会! 这个黑影主要是由于
<item name="android:windowTranslucentStatus">true</item>
有两种方法可以解决这个问题。
您只需要为状态栏提供与下面视图相同的颜色。
(这种方式就是如果你添加一个背景图像就会被捕获。因为它实际上有两个视图,状态栏及其下面的视图颜色相同。但有些人需要这个!)
为此你不需要android:windowTranslucentStatus
。它会产生那个黑影!
制作<item name="android:statusBarColor">@color/asSameColorAsBelowViewColor</item>
你可以实现它。即使这可以应用于OP的问题。但它的颜色。其他明智的你被困。
你真的需要在没有黑色阴影的情况下在StatusBar
后面观察。
例如:在您需要使用图像的情况下。
如果您使用<item name="android:windowTranslucentStatus">true</item>
,请再次对此进行删除,然后添加<item name="android:statusBarColor">@color/transparent</item>
并在 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
之前的中添加setContentView()
。