这个属性真的有用吗?
我已经阅读了documentation,我理解它应该是什么。但是,当我在主题中使用它时(我创建了一个以android:Theme.Dialog
作为父项的样式),更改此属性的值似乎没有任何效果。
答案 0 :(得分:12)
我不知道将windowIsFloating
设置为true
的所有效果,但我注意到的一件事是当它设置为true
时,活动会即使您将布局宽度设置为match_parent
(即android:layout_width="match_parent"
)
答案 1 :(得分:5)
从我的实验中,它似乎会影响窗口对软输入的反应。如果将其设置为false,则当键盘变为可见时,窗口不会向上滑动。
答案 2 :(得分:0)
使用对话框主题时,此属性默认值为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);
}
这将导致contentView总是将内容包装得尽可能小。您可以将其设置为false,或将对话框窗口布局手动更新为MATCH_PARENT,如下所示:
override fun onStart() {
super.onStart()
dialog?.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
}