我在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。感谢。
答案 0 :(得分:2)
AlertDialogs
并非全屏。为实现这一目标,您应该使用Dialog
附带的标准DialogFragment
。您需要添加自己的布局才能添加按钮来模拟AlertDialog
。更多的工作......是的,但所有那些android.R.style.Theme_DeviceDefault_Dialog_ *主题都可以正常工作。