将Theme.Dialog更改为Android中的Theme.Light.Dialog

Ryn*_*rdt 18 android themes styles dialog

没有Theme.Light.Dialog使用我正在使用的项目的其余部分Theme.Light.

如何更改Theme.Dialog为看起来像Theme.Light版本的Dialog.

我知道我必须覆盖Theme.Dialogstyles.xml中的部分,如下所示.我应该用哪些值覆盖哪些项目?

<style name="dialog_light" parent="@android:style/Theme.Dialog">
    <item name="android:???????"></item>
    <item name="android:???????"></item>
</style>
Run Code Online (Sandbox Code Playgroud)

我可以把背景变成浅白灰色,但是按钮,旋转器等在灯光主题上也是不同的,以便在浅色背景上看起来更好.

编辑

看起来我得到了它的工作.

<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>
Run Code Online (Sandbox Code Playgroud)

Ryn*_*rdt 31

看起来我得到了它的工作.

<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>
Run Code Online (Sandbox Code Playgroud)

  • +1那么你如何将风格分配到对话框中呢? (5认同)
  • 您可以将其分配给清单中的活动,使其看起来像对话.(android:theme ="@ style/dialog_light") (2认同)

Geo*_*gie 9

除此之外,为了避免颜色变化,我这样做了:

<!-- 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>
Run Code Online (Sandbox Code Playgroud)


Cou*_*chy 5

这很好,谢谢!我只是稍微改了一下:当我按照你的建议运行时,整个屏幕都涂有背面颜色,对话框看起来不应该(前面的活动变暗).

所以不要使用

@android:windowBackground
Run Code Online (Sandbox Code Playgroud)

只是用

@android:background
Run Code Online (Sandbox Code Playgroud)