ダイアログアクティビティの表示位置を変更する方法
ダイアログアクティビティにコード側でgravityを設定する方法
Created at

271 Words
⚠️

ダイアログ化したActivityを表示する際、とくに指定が無ければダイアログは画面中央に表示される(はず)。

いつの間にかすっかり巨大化してしまったスマホの画面であるが、片手操作では画面中央に表示されるダイアログのボタンに指が届かないなどの不満が(少なくとも自分には)あるので「ダイアログの表示位置を画面下部とかにできたらなァ」ということで今回やってみた。

class HogeDialogActivity : AppComapActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setDialogVerticalGravity(Gravity.BOTTOM)
        ~~~ いろいろ ~~~
    }

    private fun setDialogVerticalGravity(gravity: Int) {
        window.attributes.gravity =
            (gravity and Gravity.VERTICAL_GRAVITY_MASK) or Gravity.CENTER_HORIZONTAL
    }
}

Gravity.CENTER_HORIZONTALの部分を変えれば横位置も変えられるのかもしれないが、今回は試していない。

See Also