1. ホーム
  2. android

[解決済み] Androidのデフォルトのアラートダイアログの幅と高さを制御するには?

2023-05-04 20:26:44

質問

AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Title");
        builder.setItems(items, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {
                Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
            }
        });
        AlertDialog alert = builder.create();

上記のコードを使って、アラートダイアログを表示しています。デフォルトでは、幅は画面一杯で、高さはwrap_contentです。

デフォルトのアラートダイアログの幅と高さを制御するにはどうしたらよいでしょうか。

私は試してみました。

alert.getWindow().setLayout(100,100); // It didn't work.

アラートウィンドウのレイアウトパラメータを取得し、手動で幅と高さを設定するにはどうすればよいですか?

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

Sat Codeを少し変更するだけで、レイアウトを show() メソッドの AlertDialog .

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(layout);
builder.setTitle("Title");
alertDialog = builder.create();
alertDialog.show();
alertDialog.getWindow().setLayout(600, 400); //Controlling width and height.

または、私の方法で行うことができます。

alertDialog.show();
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();

lp.copyFrom(alertDialog.getWindow().getAttributes());
lp.width = 150;
lp.height = 500;
lp.x=-170;
lp.y=100;
alertDialog.getWindow().setAttributes(lp);