Как сделать прозрачный статус бар android studio

Android Полностью прозрачная строка состояния?

Я искал документацию, но нашел только это: Ссылка . Что используется, чтобы сделать бар прозрачным ? Я пытаюсь сделать строку состояния полностью прозрачной (как показано на рисунке ниже) и сделать ее обратно совместимой для APK android statusbar

Все, что вам нужно сделать, это установить эти свойства в вашей теме:

Для вашей деятельности / макета контейнера, для которого вы хотите иметь прозрачную строку состояния, необходимо установить следующее свойство:

Как правило, это невозможно выполнить на pre-kitkat, похоже, что вы можете это сделать, но какой-то странный код делает это так .

РЕДАКТИРОВАТЬ: Я бы порекомендовал эту библиотеку: https://github.com/jgilfelt/SystemBarTint для многих элементов управления цветом строки состояния перед леденцом на палочке.

После долгих размышлений я узнал, что ответом на полное отключение прозрачности или любого цвета, помещенного в строку состояния и панель навигации для леденца на палочке, является установка этого флага в окне:

Никакая другая тема не нужна, она производит что-то вроде этого:

Просто добавьте эту строку кода в ваш основной файл Java:

Вы можете использовать внешнюю библиотеку StatusBarUtil :

Добавьте на свой уровень модуля build.gradle :

Затем вы можете использовать следующую утилиту для действия, чтобы сделать строку состояния прозрачной:

Работает для Android KitKat и выше (для тех, кто хочет прозрачно отображать строку состояния и не манипулирует навигационной панелью, потому что все эти ответы также будут прозрачной навигационной панелью!)

Самый простой способ добиться этого:

Поместите эти 3 строки кода в styles.xml (v19) ->, если вы не знаете, как это сделать (v19), просто напишите их по умолчанию, styles.xml а затем используйте alt +, enter чтобы автоматически создать его:

А теперь перейдите в ваш MainActivity класс и выведите этот метод из onCreate в классе:

Затем поместите этот код в onCreate метод Activity:

Полностью прозрачная панель состояния и панель навигации

Чтобы нарисовать макет под строкой состояния:

Используйте CoordinatorLayout / DrawerLayout, который уже позаботится о параметре fitsSystemWindows, или создайте свой собственный макет так:

Скриншот:

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

Фрагмент кода Kotlin для вашего приложения для Android

Шаг: 1 Запишите код в методе создания

Шаг 2: Вам нужен метод SetWindowFlag, который описан ниже.

Фрагмент кода Java для вашего приложения для Android:

Шаг 1: Основной код активности

Шаг 2: метод SetWindowFlag

Используйте android:fitsSystemWindows=»false» в вашем топ-макете

Вот расширение в kotlin, которое делает свое дело:

Используя этот код в своем XML, вы сможете увидеть временную шкалу в вашей деятельности:

Есть три шага:

1) Просто используйте этот сегмент кода в свой метод @OnCreate

если вы работаете с фрагментом, вы должны поместить этот сегмент кода в метод @OnCreate своей деятельности.

2) Обязательно установите прозрачность в /res/values-v21/styles.xml:

Или вы можете установить прозрачность программно:

Читайте также:  Delphi android firedac firebird

3) В любом случае вы должны добавить сегмент кода в styles.xml

ПРИМЕЧАНИЕ. Этот метод работает только с API 21 и выше.

Вы также можете просмотреть мой пример с анимированным аватаром и анимированным текстом.

Итак, позвольте мне объяснить, как это работает. Я создал собственный вид, реализованный AppBarLayout.OnOffsetChangedListener . Внутри HeadCollapsing Custom View я основал текст и изображение в AppBarLayout.

Затем измените просмотры через рассчитанный процент. Например, как меняется вид текста:

Чтобы определить, когда нужно свернуть изображение, оживить созданный объект Pair

с состояниями: TO_EXPANDED_STATE, TO_COLLAPSED_STATE, WAIT_FOR_SWITCH, SWITCHED

затем создана анимация для аватара с состоянием:

Вы можете попробовать это.

Хотя все ответы, приведенные выше, распространяются вокруг одной и той же фундаментальной идеи, вы можете заставить ее работать с простыми макетами, используя один из приведенных выше примеров. Однако я хотел изменить цвет фона, используя скользящую навигацию по фрагментам в полноэкранном режиме (кроме панели вкладок) и поддерживая регулярную навигацию, вкладки и панели действий.

Внимательно прочитав статью Антона Хадуцкого, я лучше понял, что происходит.

У меня есть DrawerLayout с ConstraintLayout (т.е. контейнер), который имеет Toolbar , включают в себя для основного фрагмента и BottomNavigationView .

Установка DrawerLayout имея fitsSystemWindows истина не является достаточным, вам необходимо установить как DrawerLayout и ConstraintLayout . Предполагая прозрачную строку состояния, цвет строки состояния теперь совпадает с цветом фона ConstraintLayout .

Тем не менее, включенный фрагмент все еще имеет вставку строки состояния, поэтому анимация другого «полноэкранного» фрагмента поверх элемента не меняет цвет строки состояния.

Немного кода из упомянутой статьи в Activity «s onCreate :

И все хорошо, за исключением того, что теперь Toolbar не учитывается высота строки состояния. Еще несколько со ссылкой на статью, и у нас есть полностью рабочее решение:

Источник

Programmer Group

A programming skills sharing group

Android Transparent Status Bar Solution

Android Transparent Status Bar Solution

Preface

An android Exploration of an android Second Goods

During the android development process, I saw the interface of APP as shown in the following picture.

It’s amazing to find that this kind of status bar is really amazing. It’s amazing to see that the status bar and the interface are perfectly integrated. It’s really very beautiful. So I studied it in the spirit of «getting to the bottom» and found that it’s not so easy to implement, because we need to consider the difference between Android version 4.4 and version 5.0 or more.

Start to explain!!

Choice of Patterns

In general, commonly used configurations:
Usually when we do the status bar, we set something in style.

1. Set it first in styles.xml file under the values folder

3. Then configure the Style in the corresponding Activity

android:fitsSystemWindows= «true» is also typically set in top-level controls such as toolbar, which gives space to the status bar.
This is the simplest way to implement it.
But there are some minor problems with this approach.
1. Settings in style may be invalid
2. This approach does not dynamically modify color and transparency

So below I’m doing it through code.

Читайте также:  Cartoon face для андроид

And at the end of the day, I’ll send out the tool class source code that combines several solutions.

1. Coloring mode

The shading mode is to change the status bar. Version 4.4 is a different way since the common method is not easy to implement. In fact, this way is to add transparency to the top status bar, add a View of the same size as the status bar, and set its attributes instead of OK.

Here’s an example of the general Toolbar code settings: specific implementation please check the source code at the end of the blog ^-^!

1. Judge Android version and set up different versions accordingly

The status bar color can be set directly above Android 5.0, but the main work is compatible with version 4.4.
Here is the code that is compatible in 4.4

The results are as follows:

Here’s a description of the status bar shading solution with Drawer Layout. Here I’ve sorted out three solutions, one of which I’ll just describe here, and the other two are looking for setDyeDrawerStatus * () in the source code.

In version 5.0, the color of the status bar is based on the color Primary Dark in style. If you want to modify it, please go to style to modify the color Primary Dark.

The transparency of the following example is 122
Here are screenshots of versions 5.0 and 4.4

2. Transparency model

It’s the style of the two pictures of Netease Cloud Music and Weather at the beginning of the article.

First of all, transparent mode I think the most used is the picture, so here’s a chestnut with pictures.
Let’s put down the code first.

Then explain the solution:
First set the status bar

With these settings in 5.0, you can adjust the color and transparency of the status bar.

Then on the 4.0 system, the settings are similar to those above, which are to make the status bar transparent, then put a View of the size of the status bar, and set its transparency and color, etc.
Finally, I wrote a topView below, in order to let the top control give up the height of the status bar, set the top padding, below is the effect of the image mode.
4.4 version:

Version 5.0 and above

Another pattern is the Collapsing Toolbar Layout image title pattern.
This is it

The code for this pattern is as follows

This completes the effect.

The results are as follows:

The rest is about fragment s, which is almost the same as the picture, so I don’t paste the code, just paste the effect.

Code and principle are about to say so much, other effects are in my source code, you can go to the source code to have a look, the following will share my source code!! If you feel good, please give me a shit

Читайте также:  Phones having android one

I’m Alex-Crayon Liu, an Android white!
There is a mistake or a mistake. I hope God can correct it. Also hope to make progress with other «Xiaobai»!

Posted by PolyPill on Sun, 21 Apr 2019 09:54:34 -0700

Источник

Android Studio — Как иметь прозрачную строку состояния?

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

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

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

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

2 ответа

Вы можете проверить мой ответ в этом сообщении, поскольку, похоже, это именно то, что вы ищете.

Не хотелось бы вводить все это здесь снова, но ответ @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 , если он есть в некотором коде.

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

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

Источник

joinAero / TransparentStatusBarActivity.java

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

xml version = » 1.0 » encoding = » utf-8 » ?>
android .support.v4.widget.DrawerLayout
xmlns : android = » http://schemas.android.com/apk/res/android «
xmlns : app = » http://schemas.android.com/apk/res-auto «
xmlns : tools = » http://schemas.android.com/tools «
android : id = » @+id/drawer «
android : layout_width = » match_parent «
android : layout_height = » match_parent «
android : fitsSystemWindows = » true «
tools : context = » .ui.demo.TransparentStatusBarActivity «
tools : openDrawer = » end » >
android .support.design.widget.CoordinatorLayout
android : layout_width = » match_parent «
android : layout_height = » match_parent «
android : fitsSystemWindows = » true » >
include layout = » @layout/toolbar »/>
android .support.v7.widget.RecyclerView
android : id = » @+id/recycler «
android : layout_width = » match_parent «
android : layout_height = » match_parent «
android : scrollbars = » none «
app : layout_behavior = » @string/appbar_scrolling_view_behavior »/>
android .support.design.widget.CoordinatorLayout>
android .support.design.widget.NavigationView
android : id = » @+id/nav «
android : layout_width = » wrap_content «
android : layout_height = » match_parent «
android : layout_gravity = » end «
android : fitsSystemWindows = » true «
app : headerLayout = » @layout/nav_header_main «
app : menu = » @menu/nav_menu_main »/>
android .support.v4.widget.DrawerLayout>

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Источник

Оцените статью