【问题标题】:Fullscreen Holo Dialogs全屏 Holo 对话框
【发布时间】:2013-08-12 00:35:30
【问题描述】:

我在 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 它不会是全屏的。每当涉及 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。谢谢。

【问题讨论】:

  • 全屏对话框被称为活动 :) 你为什么不这样呢?
  • 好的,不是完全全屏,我仍然想要对话窗口周围的边距。这就是您使用 Theme_Black_NoActionBar_Fullscreen 所获得的。您会得到一个使用屏幕大部分宽度的窗口,并带有边距。但是对于 Holo 主题,我只得到一个屏幕宽度一半的窗口。该对话框包含文本,因此如果它使用更多宽度会更好。无论如何,我尝试过的任何方法都不能让我以任何方式改变对话框的宽度。当然我应该能够以某种方式影响宽度,而不是必须为我选择宽度?

标签: android dialog


【解决方案1】:

AlertDialogs 不适合全屏显示。为了实现这一点,您应该只使用DialogFragment 附带的标准Dialog。您需要添加自己的布局才能添加按钮来模拟AlertDialog。更多的工作......是的,但是所有那些 android.R.style.Theme_DeviceDefault_Dialog_* 主题都将正常工作。

【讨论】:

  • 非常感谢,现在可以使用了。但是还有一个小问题,如果没有在对话框使用的线性布局上设置 android:minWidth="1000dp" 就不会填满屏幕。但至少它有效,谢谢。
猜你喜欢
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 2012-04-27
  • 2020-05-13
  • 1970-01-01
相关资源
最近更新 更多