Подтвердить что ты не робот

WindowBackground в Android 6 (Marshmallow)

Я определил базовый стиль для моего приложения со следующим элементом:

<item name="android:windowBackground">@color/window_background</item>

Который задал цвет фона для всех моих действий, пока я не протестировал свое приложение на Android 6, где все фоны белые. Фоновые рисунки по-прежнему являются цветными /window _background на устройствах, работающих с предварительным зефиром.

Кто-нибудь знает, как сделать эту работу (или почему она не работает) на Android 6?

Изменить с помощью дополнительной информации: Я нацелен на API 22, я ничего не изменил из предыдущей версии или не обновил API, только на Android 6 меняет фон.

4b9b3361

Ответ 1

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

Изменение ресурса цвет фона на ресурс с возможностью рисования.

From:

<item name="android:windowBackground">@color/window_background</item>

To:

<item name="android:windowBackground">@drawable/window_background</item>

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <solid android:color="@color/window_background"/>
</shape>

Если вы не проверили непрозрачность всех своих просмотров:

Убедитесь, что ваш windowBackground на самом деле является фоном большинства вашей деятельности (особенно над прокручиваемыми разделами, где перегрузка наиболее важно избегать), удаление непрозрачных фоновых изображений где возможно.

Сделайте для вас работу windowBackground вместо нулевого

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

Фоны состоят из нескольких слоев, начиная с начала:

  • фон Подходит для темы
  • сплошной цвет (устанавливается через setColor (int))
  • два Drawables, предыдущие и текущие (устанавливаются через setBitmap (Bitmap) или setDrawable (Drawable)), которые могут находиться в состоянии перехода

BackgroundManager

Я не могу найти, есть ли разница с темами в Marshmallow или порядком элементов, кажется, что никаких фундаментальных изменений не было, и я не могу найти ошибки для этого.

Я надеюсь, что это поможет, дайте мне знать, и я могу посмотреть еще раз.

Если это не помогает, возможно, стоит опубликовать еще какой-то код, относящийся к этой проблеме. Приветствия.

Ответ 2

У меня была одна и та же проблема, но я узнал, что, если я прокомментировал actionBarTheme в своих стилях, он начал работать внезапно. Я углубился в своих стилях и выяснил, что стиль панели действий устанавливал атрибут android:background после того, как он прокомментировал это, все работает сейчас, как ожидалось.

Ответ 3

Если вы используете Android Studio 1.4 или выше, перейдите к стилям, в которых находится ваша тема, и нажмите "Открыть редактор" в правом верхнем углу. Затем измените свой фон окна. Он должен быть под "android: colorBackground"

Ответ 4

Как установить как windowBackground, так и colorBackground

<item name="android:windowBackground">@color/window_background</item>
<item name="android:colorBackground">@color/window_background</item>