2011年11月23日

Android: Theme.Dialogを適用したアクティビティを最大化して表示したい時は

マニフェストファイルに下の様に書くだけでアクティビティがダイアログ風に表示されるのはとても便利。
<activity android:label="Help" android:name=".WebViewActivity"   android:theme="@android:style/Theme.Dialog">
</activity>
ただ、これで表示されるダイアログの大きさは、その中に表示する内容によって変わる。 

たまたま、WebViewとButtonをFrameLayout上に配置して幅・高さともにfill_parentを指定した時に、内容が見えないくらいにダイアログが小さくなってしまって困った。

 こんな感じになってしまう。


検索したらやっぱり同様に困っていた人がいた。
android - How can I get a Dialog style activity window to fill the screen? - Stack Overflow
ここにある通り、onCreate内でsetLayoutをすれば意図した通りダイアログが最大化されて表示された。


こんな感じで一件落着。

ついでに、ダイアログのタイトルバーが不要なので消したい。

まず、res/values/styles.xmlファイルを作る。

あとはマニフェストで @android:style/Theme.Dialog の代わりに @style/Theme.MyDialog を指定すればOK。