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_NoActionBar_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 では機能しないようです。ありがとう。