将 Theme.Dialog 更改为 Android 中的 Theme.Light.Dialog
Posted
技术标签:
【中文标题】将 Theme.Dialog 更改为 Android 中的 Theme.Light.Dialog【英文标题】:Change Theme.Dialog to look like Theme.Light.Dialog in Android 【发布时间】:2012-06-10 13:03:37 【问题描述】:没有Theme.Light.Dialog
可用于我正在使用Theme.Light
的项目的其余部分。
如何将Theme.Dialog
更改为Theme.Light
版本的Dialog
。
我知道我必须覆盖styles.xml 中Theme.Dialog
的部分,如下所示。我应该用哪些值覆盖哪些项目?
<style name="dialog_light" parent="@android:style/Theme.Dialog">
<item name="android:???????"></item>
<item name="android:???????"></item>
</style>
我可以将背景设为浅白灰色,但按钮、微调器等在浅色主题上也有所不同,以便在浅色背景上看起来更好。
编辑
看起来我已经成功了。
<color name="black">#FF000000</color>
<color name="whitegrey">#FFF2F2F2</color>
<style name="dialog_light" parent="@android:style/Theme.Dialog">
<item name="@android:windowBackground">@color/whitegrey</item>
<item name="@android:textColor">@color/black</item>
</style>
【问题讨论】:
试试this 一个。 【参考方案1】:除此之外,为了避免补色,我这样做了:
<!-- Makes a "light" equivalent of Theme.Dialog -->
<style name="dialog_light" parent="@android:style/Theme.Dialog">
<item name="@android:background">@android:color/background_light</item>
<item name="@android:textColor">@android:color/primary_text_light</item>
</style>
【讨论】:
【参考方案2】:这很好,谢谢! 我只是稍微更改了一下:当我运行您建议的内容时,整个屏幕都涂有背景颜色,并且对话框看起来不像应有的那样(先前的活动变暗)。
所以不要使用
@android:windowBackground
随便用
@android:background
【讨论】:
【参考方案3】:看起来我已经成功了。
<color name="black">#FF000000</color>
<color name="whitegrey">#FFF2F2F2</color>
<style name="dialog_light" parent="@android:style/Theme.Dialog">
<item name="@android:windowBackground">@color/whitegrey</item>
<item name="@android:textColor">@color/black</item>
</style>
【讨论】:
您可以将其分配给清单中的活动,使其看起来像对话。 ( android:theme="@style/dialog_light" ) 您也可以在创建 Dialog 实例时传递 , R.style.yourstyle 作为第二个参数以上是关于将 Theme.Dialog 更改为 Android 中的 Theme.Light.Dialog的主要内容,如果未能解决你的问题,请参考以下文章
Android常用对话框大全自定义Dialog的三种方式(Theme,PopupWindow,Dialog)
Android常用对话框大全自定义Dialog的三种方式(Theme,PopupWindow,Dialog)
Android studio使用android:style/Theme.Dialog报错:You need to use a Theme.AppCompat theme (or descendant)