【问题标题】:Changing default Android fade/scrim color when calling a Dialog调用对话框时更改默认的 Android 淡入淡出/稀松布颜色
【发布时间】:2015-09-24 19:36:14
【问题描述】:

我一直在开发一个应用程序,并且已经到了需要我在屏幕中间显示一个菜单窗口的地步。

我一直在使用一个填充了自定义视图的 AlertDialog 对象,但现在我需要用半透明的白光“包围”窗口,而不是默认的灰色光。我对我的应用程序上的一些导航抽屉的淡入颜色做了类似的处理,但在这种情况下,我有一个特定的方法可以快速帮助我解决这个问题。到目前为止,我还没有找到任何可以帮助我解决这个问题的方法。

我尝试使用新的“windowBackground”值创建默认样式,但从一开始就遇到了 3 个问题:

  • 我无法再通过在布局外部单击来关闭 AlertDialog(我猜是因为通过更改颜色,所有内容现在都是布局)
  • 菜单窗口现在被一个以前没有的黑色轮廓包围
  • 通过在布局中使用过滤搜索,它会操纵列表的成员,窗口会自行折叠

有什么方法可以直接或多或少地完成我想要的吗?

【问题讨论】:

    标签: android android-dialog android-styles


    【解决方案1】:

    我不太确定,但你可以在你的 styles.xml 中使用它

    <style name="MyDialogTheme" parent="android:Theme.AppCompat.Light.Dialog">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@color/your_light_color</item>
    <item name="android:backgroundDimEnabled">false</item>
    

    如果你想在点击外部时关闭对话框,使用这个:

    dialog.setCanceledOnTouchOutside(true);
    

    <item name="windowCloseOnTouchOutside">true</item>
    

    在你的 style.xml 中

    【讨论】:

    • 嗨 jav,感谢您的回复。尽管您的代码与我已经尝试过的代码相似,但我试了一下,并设法摆脱了主视图周围难看的黑色轮廓。但是我仍然无法通过在视图外部单击来关闭视图,因此我坚持我的理论,即定义窗口背景会使视图占据整个屏幕。
    • 真的很奇怪。我不知道如何解决你的问题。请参阅here 并尝试它是否有效。另请参阅thisthisthis
    • 感谢您的建议。如果他们最终解决了我的问题,我会在这里指出。
    猜你喜欢
    • 2015-05-27
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多