この属性は実際に何をしますか?
documentation を読み、それが何であるかを理解しました。ただし、テーマで使用する場合(Android:Theme.Dialog
を親としてスタイルを作成した場合)、この属性の値を変更しても効果がないようです。
windowIsFloating
をtrue
に設定した場合のすべての効果はわかりませんが、true
に設定すると、アクティビティが展開されないことに気づきました。レイアウト幅をmatch_parent
(つまり、Android:layout_width="match_parent"
)に設定した場合でも、画面全体に表示される幅
私の実験から、それはウィンドウがソフト入力にどのように反応するかに影響を与えるようです。これをfalseに設定すると、キーボードが表示されたときにウィンドウが上にスライドしません。
Dialog Themeを使用する場合、この属性のデフォルトはtrueです。
<style name="Base.V7.Theme.AppCompat.Light.Dialog" parent="Base.Theme.AppCompat.Light">
...
<item name="Android:windowIsFloating">true</item>
...
</style>
この場合、Dialog
は次のコードでPhoneWindowを作成します。
if (mIsFloating) {
setLayout(WRAP_CONTENT, WRAP_CONTENT);
setFlags(0, flagsToUpdate);
}
これにより、contentViewは常にコンテンツを最小でラップします。 falseに設定するか、次のようにDialog
ウィンドウレイアウトをMATCH_PARENTに手動で更新できます。
override fun onStart() {
super.onStart()
dialog?.window?.setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)
}