В чем разница между windowBackground и фоном для стиля деятельности?

У меня есть фоновый набор для всех действий приложения с использованием параметра «android: background» в стилях и настройка темы приложения для ссылки на этот стиль.

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

После изменения параметра, используемого для «android: windowBackground», в этом случае также работает нормально.

Почему это происходит? Какая разница между двумя?

Кроме того, настройка «android: windowBackground» на @null, как написано здесь, обеспечивает такое же ускорение скорости, как и использование «андроид: фон»?

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

По умолчанию представления прозрачны (т. Е. Не имеют цвета фона), поэтому визуально выглядит, что они берут цвет из основного окна.

Обратите внимание, как связанная статья ссылается на установку windowBackground на нуль, а не на фон для полноэкранных просмотров. Это обычная техника, позволяющая избежать переуровений.

Но тот же принцип может применяться к представлениям, если у вас есть один вид, полностью скрывающий другое представление.

Пример: gist.github.com/floatingmonkey/5474959