1. ホーム
  2. android

[解決済み] 画面上のダイアログの位置を変更する android

2022-07-27 02:44:47

質問

簡単な AlertDialog の中に アクティビティ :

View view = layoutInflater.inflate(R.layout.my_dialog, null);
AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this)
                    .setView(view)  
                    .create();

infoDialog.show();

上記のコードで ダイアログ は画面の(ほぼ)中央に表示されます。

私は、ダイアログの位置をカスタマイズして、一番上のアクションバーのすぐ下に表示されるようにするにはどうすればよいのでしょうか?(ダイアログの重力か何かを変更する方法はありますか?) そして、どのように私のコードに基づいてそれを行うには?

どのように解決するのですか?

画面下にダイアログを表示させるために、このコードを使用しました。

Dialog dlg = <code to create custom dialog>;

Window window = dlg.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();

wlp.gravity = Gravity.BOTTOM;
wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
window.setAttributes(wlp);

このコードは、必要であればアンドロイドがダイアログの背景を薄暗くすることも防いでくれます。ダイアログを移動させるために、gravityパラメータを変更することができるはずです。