Android атрибут windowBackground игнорируется - PullRequest
0 голосов
/ 14 июля 2020

Или что-то вроде.

У меня есть действие с контейнером фрагментов. У каждого макета фрагментов нет фона. Я уже пробовал сделать фон прозрачным - никакого эффекта. Также я использую библиотеку FragNav для обработки транзакций фрагментов.

Дело в том, что фон widnows отображается правильно в редакторе xml предварительный просмотр.

Стиль:

<style name="AppTheme" parent="Theme.MaterialComponents.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:windowBackground">@drawable/ng_window_background</item>
    <item name="android:statusBarColor">@color/colorPrimaryDark</item>
</style>

Рисуемое «ng_windows_background» - это просто фигура с цветом solid. Цвета HEX - это # ​​FDA23.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="@color/colorAccent"/>
</shape>

XML пример предварительного просмотра: Цвет фона оранжевый.

Снимок экрана с устройства Как вы видно, цвет фона серый.

То, что я уже пробовал:

  • Изменение цвета фона макета фрагмента (android: background ). Да, он работает , но вызывает эффект перерисовки, которого я пытаюсь избежать , используя атрибут android: windowBackground.
  • Используя android: colorBackground атрибут, из-за рекомендаций компонентов материала. Нет эффекта.
  • Изменение темы приложения программно и в манифесте. Нет эффекта.
  • Изменение Theme.MaterialComponents.NoActionBar на AppCompat. Нет эффекта + Я не могу использовать AppCompat из-за некоторых проблем.
  • Изменение фона с помощью getWindow (). SetBackgroundResource (); Ни в OnResume ();

Думаю, это проблема с библиотекой MaterialComponents. Я думаю.

'может отображать любой фрагмент кода, если это необходимо.

EDIT: manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="packageName"
    >

    <uses-permission android:name="android.permission.INTERNET" />
    <application
        android:name="AppClassPath"
        android:allowBackup="true"
        android:icon="@mipmap/logo"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/logo_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true">
        <activity android:name=SplashScreenPath
            android:theme="@style/AppTheme.Launcher">
            <intent-filter>
                <category android:name="android.intent.category.LAUNCHER" />
               <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        <activity android:name=MainActivityPath />

    </application>

</manifest>

EDIT # 2: удалены все функции, оставив OnCreate () пусто. Никакого эффекта, значит, никаких проблем с внешними библиотеками.

help

1 Ответ

0 голосов
/ 14 июля 2020

Хорошо, проблема была во внешней библиотеке с именем com.infideap.drawerbehavior: drawer-behavior: 1.0.1. Постараюсь выяснить, что было не так, и опубликовать правильное решение. Да.

...