Android Studio - Как иметь прозрачную строку состояния? - PullRequest
0 голосов
/ 29 февраля 2020

Описание:

Этот вопрос был задан на этом сайте, но ответы для меня не помогли. Мне нужно сделать ТОЛЬКО строку состояния прозрачной, и вот что я нашел:

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

Я попробовал, и она работает, но она делает прозрачной и нижнюю панель действий (С нижней панелью действий я имею в виду это :)

enter image description here

Как мне сделать ТОЛЬКО верхнюю строку состояния прозрачной?

Большое спасибо за чтение

Ответы [ 2 ]

1 голос
/ 29 февраля 2020

Вы можете проверить мой ответ в этом посте, так как кажется, что это именно то, что вы ищете.

Не хотелось бы набирать здесь все снова, но ответ от @ Yunus может не работать, если не выполнены все условия, в основном то, что говорит документация для statusBarColor.

Цвет строки состояния. Если цвет непрозрачный, рассмотрите возможность установки {@link android .view.View # SYSTEM_UI_FLAG_LAYOUT_STABLE} и {@link android .view.View # SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN}. Для того, чтобы это вступило в силу, окно должно рисовать фоны системной панели с помощью {@link android .R.attr # windowDrawsSystemBarBackgrounds}, и строка состояния не должна была запрашивать прозрачность с помощью {@link android .R. .attr # windowTranslucentStatus}. Соответствует {@link android .view.Window # setStatusBarColor (int)}.

См. Ответ для установки необходимых флагов и стиля, а также для сохранения панели навигации просто НЕ добавляйте View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION флаг, если он у вас есть в коде.

Удачи.

1 голос
/ 29 февраля 2020

Вы можете создать собственную тему, которая устанавливает цвет строки состояния. Он работает на версии 21 и выше:

<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>
         <!-- You can customize it by changing statusBarColor. -->
        <item name="android:statusBarColor">@color/pieces_cherry</item>
</style>

И в вашем манифесте вам нужно установить это как тему вашего приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...