无法设置导航栏背景颜色-Android



在一个活动中,我需要全屏显示,但当用户点击显示导航栏时,栏的背景色始终是黑色。

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setSystemWindowFullScreen(this);
setContentView(R.layout.activity_layout);
ButterKnife.bind(this);
setFitsSystemWindows(this,rootView); 
}
public void setSystemWindowFullScreen(Activity activity)
{
activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
int mUIFlag = View.SYSTEM_UI_FLAG_IMMERSIVE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
activity.getWindow().getDecorView().setSystemUiVisibility(mUIFlag);
}
public void setFitsSystemWindows(Activity activity,View rootView)
{
//Set Navigation bar style 
activity.getWindow().setNavigationBarColor(Color.TRANSPARENT);
ViewCompat.setOnApplyWindowInsetsListener(rootView, (v, insets) -> {
((ViewGroup.MarginLayoutParams) v.getLayoutParams()).topMargin =
insets.getSystemWindowInsetTop();
return insets.consumeSystemWindowInsets();
}); 
}
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:fitsSystemWindows">true</item> 
<item name="android:windowDisablePreview">true</item>
</style>

我错过了什么?

您可以在styles.xml:中执行此操作

<item name="android:navigationBarColor">@color/theme_color</item>

window.setNavigationBarColor(@ColorInt int color)

最新更新