1

Android のアラート ダイアログで重大な問題が発生しました。DialogFragment を拡張し、ダイアログをフルスクリーンにしたい。何度も失敗した後、ダイアログのテーマを設定することでフルスクリーンのダイアログを表示できることがわかりました。私はこのようにそれをやった

ContextThemeWrapper context = new ContextThemeWrapper(getActivity(), android.R.style.Theme_Holo_NoActionBar_Fullscreen);

AlertDialog.Builder builder = new AlertDialog.Builder(context);

私が読んだので、これは古い API と互換性がありました。残念ながら、特定のテーマでのみ機能し、ホロ テーマでは機能しません。たとえば、Theme_Black_NoActionBar_Fullscreen を使用するとフルスクリーンになりますが、Theme_Holo_NoA​​ctionBar_Fullscreen または Theme_DeviceDefault_NoActionBar_Fullscreen を使用するとフルスクリーンになりません。ホロが関係するときはいつでも、ダイアログは画面いっぱいになりません。

次の設定で Theme.Holo を拡張して、独自のスタイルを定義しようとさえしました。

<item name="android:windowIsFloating">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowBackground">@null</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowAnimationStyle">@null</item>

    <item name="android:windowIsTranslucent">true</item>

ただし、フルスクリーンやヌル フレーム、背景などを明示的に設定しても役に立ちません。ダイアログは依然として画面の幅を埋めることを拒否しています (携帯電話でランドスケープ モードでテストしています)。

これについて何か助けていただければ幸いです。私は一日中それを機能させようとしています。最初に LayoutParams を使用してウィンドウ属性を設定しようとしましたが、これは DialogFragment では機能しないようです。ありがとう。

4

1 に答える 1

2

AlertDialogsフルスクリーンにするためのものではありません。Dialogこれを実現するには、 に付属の標準を使用する必要がありますDialogFragment。をシミュレートするボタンを追加するには、独自のレイアウトを追加する必要がありますAlertDialog。さらに作業があります...はい、しかし、これらすべての android.R.style.Theme_DeviceDefault_Dialog_* テーマは適切に機能します。

于 2013-08-11T16:35:30.417 に答える