我在 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,它就不会是全屏的。每当涉及 Holo 时,对话框都不会填满屏幕。
我什至尝试定义自己的风格,使用以下设置扩展 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。谢谢。