1. ホーム
  2. android

[解決済み] ダイアログ形式のアクティビティウィンドウを画面一杯に表示させるには?

2022-05-09 12:03:26

質問

ダイアログテーマを設定したアクティビティを使用していますが、フルスクリーンにしたいのです。いろいろと試してみましたが、WindowManagerを経由して手動でウィンドウをフル幅とフル高さに拡大しても、何もうまくいきません。

どうやら、ダイアログウィンドウ(またはダイアログテーマのアクティビティ)は、その内容に応じてのみ拡大するようですが、それさえも常に機能するとは限りません。例えば、幅と高さがFILL_PARENTに設定されたプログレスバーの円を表示します(そのレイアウトコンテナも同様です)が、それでもダイアログは画面を埋め尽くすのではなく、ずっと小さなプログレスバーを囲むように表示されます。

ダイアログウィンドウの中に小さなものを表示し、その内容もリサイズせずにフルスクリーンサイズに展開する方法があるのではないでしょうか?

解決方法は?

解決策が見つかりました。

を持つあなたのアクティビティで Theme.Dialog のスタイルを設定し、次のようにします。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.your_layout);

    getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
}

を呼び出すことが重要です。 Window.setLayout() を呼び出すと setContentView() そうでない場合は動作しません。