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

Возможный переутомление: элемент корневого элемента рисует фон с темой, которая также рисует фон

Я внедрил clickable Recyclerview элемент и установил android:background="?selectableItemBackground" для эффекта щелчка, но при проверке кода я нашел эту проблему с линией.

Предупреждение о линге: Возможная перегрузка: элемент корневого элемента рисует фон ?selectableItemBackground с темой, которая также рисует фон

Любая идея решить это предупреждение?

Мой xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?selectableItemBackground"
    android:clickable="true"
    android:orientation="vertical"
    android:padding="@dimen/row_padding">

    //...
</LinearLayout >
4b9b3361

Ответ 1

По умолчанию тема имеет указанный атрибут android:windowBackground, который указывает, как следует из названия, фон окна, в котором запускается ваша активность.

В этом предупреждении появляется только следующее:

Эй! Я вижу, что в вашей теме применен windowBackground, а макет root рисует еще один ярлык поверх фона фона, делая ненулевым фоном окно - таким образом, излишнее удаление элементов без необходимости.

Отброс windowBackground заставил бы не жаловаться:

<style name="AppTheme" parent="...">
    ...
    <item name="android:windowBackground">@null</item>
</style>

Ответ 2

Вы должны поместить рябь в атрибут переднего плана

Ответ 3

Я бы просто удалил чек. Это вполне приемлемо для переустановки x1 для большинства приложений.

Там очень хорошая публикация о переутомлении и производительности от Romain Guy: http://www.curious-creature.com/2012/12/01/android-performance-case-study/.

Настройка <item name="android:windowBackground">@null</item> в вашей теме неверна, потому что она удалит анимацию запуска активности (см. эту статью для более подробной информации о анимации запуска: https://cyrilmottier.com/2013/01/23/android-app-launching-made-gorgeous/). Вы не должны этого делать.

Настройка getWindow().setBackgroundDrawable(null) в Activity.onCreate() выполнима, но вы должны убедиться, что каждый пиксель в вашем приложении окрашен хотя бы один раз, так как у вас больше не будет фона для рисования. Это потенциально опасно для очень ограниченной выгоды.