2

在我的应用程序中,我想显示渐变状态栏。我也用过BottomNavigationView。所以问题是当我在做状态栏渐变时,android 的底部导航栏与BottomNavigationView.

我尝试了以下解决方案:

  1. 如何在android中将状态栏背景设置为渐变色或drawable
  2. 状态栏和导航栏上的 Google Now 渐变/阴影
  3. 如何将渐变应用于android中的状态栏?
  4. 如何删除底部屏幕上的按钮栏

我的代码如下:

- >在我试过的java代码中:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window w = getWindow();
            w.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
            w.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }

问题 :: 使用此 java 代码,我已经实现了状态栏问题,但 android 的底部导航栏与BottomNavigationView.

--> 我也尝试过以下风格:

<item name="android:windowFullscreen">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">false</item>
<item name="android:windowIsTranslucent">true</item>

问题 :: 但是通过此代码获得一些深色状态栏。

--> 我也试过android的沉浸式模式:

View decorView = getWindow().getDecorView();
        decorView.setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_IMMERSIVE
                        // Set the content to appear under the system bars so that the
                        // content doesn't resize when the system bars hide and show.
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        // Hide the nav bar and status bar
                        | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                        | View.SYSTEM_UI_FLAG_FULLSCREEN);

问题 :: 但它隐藏了我不想隐藏的状态栏和底部导航。

******************* 编辑 *******************

在活动中尝试:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        } else {

            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }

在布局中:

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true">

很有型 :

 <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
        <item name="android:windowActionBar">false</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
        <item name="android:windowTranslucentNavigation">false</item>
        <item name="android:navigationBarColor">#000</item>
        <item name="colorControlNormal">#FFFFFF</item>
 </style>

任何形式的帮助都将是可观的。谢谢 !

4

1 回答 1

3

你上面的代码对我来说很好用

您需要更改根布局

制作CoordinatorLayout为您的根布局

利用

android.support.design.widget.CoordinatorLayout

代替

RelativeLayout

使用查看输出RelativeLayout

在此处输入图像描述

输出使用android.support.design.widget.CoordinatorLayout

在此处输入图像描述

于 2018-10-04T06:59:52.253 回答