Атрибут windowIsFloating в теме Android
Что действительно делает этот атрибут?
Я прочитал документацию и я понимаю, что это должно быть. Однако, когда я использую его в теме (я создал стиль с android:Theme.Dialog
как родительский), изменение значения для этого атрибута не имеет никакого эффекта.
Ответы
Ответ 1
Я не знаю всех эффектов установки windowIsFloating
на true
, но одна вещь, которую я заметил, это то, что когда она установлена в true
, активность не будет расширять ширину, чтобы заполнить экран, даже если вы установите ширину макета на match_parent
(т.е. android:layout_width="match_parent"
)
Ответ 2
Из моих экспериментов, похоже, влияет, как окно реагирует на мягкий вход. Это вы установите для этого значения false, окно не будет сдвигаться, когда клавиатура станет видимой.
Ответ 3
Когда вы используете тему диалога, это значение по умолчанию true.
<style name="Base.V7.Theme.AppCompat.Light.Dialog" parent="Base.Theme.AppCompat.Light">
...
<item name="android:windowIsFloating">true</item>
...
</style>
И в этом случае Диалог создаст PhoneWindow с этим кодом:
if (mIsFloating) {
setLayout(WRAP_CONTENT, WRAP_CONTENT);
setFlags(0, flagsToUpdate);
}