Android Изменить статусБарЦвет доверенной веб-активности - PullRequest
0 голосов
/ 13 февраля 2019

Я строю на основе этого репозитория моего первого приложения TWA / PWA.Все работает нормально, но я не могу изменить цвет строки состояния.

Я изменяю этот файл и добавляю эту строку в тег <style>:

<item name="android:statusBarColor">@color/ic_launcher_background</item>

Дело в том ... что он хорошо работает при первом запуске приложения ... Но через 500 мс после первого запуска он запускает веб-просмотр, и statusBarColor снова становится белым.

Любая идея, как я могу это исправить?

Ответы [ 3 ]

0 голосов
/ 14 февраля 2019

попробуйте добавить этот код в onResume ()

public void setStatusBarColor(int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setStatusBarColor(color);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
}
0 голосов
/ 26 марта 2019

Вы должны добавить новые метаданные в свой AndroidManifest, где вы объявили Trusted Web Activity (android.support.customtabs.trusted.STATUS_BAR_COLOR)

 <activity android:name="android.support.customtabs.trusted.LauncherActivity">
    <meta-data
        android:name="android.support.customtabs.trusted.DEFAULT_URL"
        android:value="https://your-host.com/" />
    <meta-data
        android:name="android.support.customtabs.trusted.STATUS_BAR_COLOR"
        android:resource="@color/colorPrimaryDark" />
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE"/>
        <data
            android:scheme="https"
            android:host="your-host.com"/>
    </intent-filter>
</activity>
0 голосов
/ 14 февраля 2019

Обновлено : последняя версия библиотеки поддержки ( e849e45c90 ) была обновлена, чтобы упростить изменение цвета строки состояния.

Образец SVGOMG был обновлен для его использования, и необходимые изменения в приложениях для его работы можно увидеть в этом запросе на получение * .

Нижеследующий раздел устарел, но оставляет здесь исторический контекст

Можно изменить цвет строки состояния, настроив его при открытии намерения пользовательских вкладок.

В настоящее время это не настраивается в манифесте, и основной способ сделать это:

  1. Скопировать LauncherActivity из репозитория библиотеки поддержки в ваш проект.
  2. измените ссылку в AndroidManifest.xml на вашу копию реализации.
  3. Настройте код LauncherActivity для настройки строки состояния, заменив метод getCustomTabsIntent начто-то вроде кода ниже:
    protected CustomTabsIntent getCustomTabsIntent(CustomTabsSession session) {
        return new CustomTabsIntent.Builder(session)
          .setToolbarColor(Color.parseColor("#FF0000"))
          .build();
    }

Приведенный выше код создаст красную строку состояния.Замените #FF0000 желаемым цветом.

...