Невозможно установить цвет фона панели навигации - Android - PullRequest
0 голосов
/ 30 марта 2020

Внутри упражнения мне нужно иметь полноэкранный режим, но когда пользователь нажимает, чтобы показать панель навигации, цвет фона панели всегда черный.

    @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>

Чего мне не хватает?

1 Ответ

1 голос
/ 30 марта 2020

Вы можете сделать это в стилях. xml:

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

или

          window.setNavigationBarColor(@ColorInt int color)
...