Измените тему.Dialog, чтобы выглядеть как Theme.Light.Dialog на Android

17

Нет Theme.Light.Dialog для использования с остальной частью моего проекта, который использует Theme.Light .

Как я могу изменить Theme.Dialog , чтобы выглядеть как Theme.Light версии Dialog .

Я знаю, что я должен перезаписать разделы Theme.Dialog в styles.xml, как показано ниже. Какие элементы следует переписать с помощью каких значений?

<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>
    
задан Rynardt 06.06.2012 в 15:45
источник
  • Попробуйте это. –  Praveenkumar 06.06.2012 в 15:50

3 ответа

29

Похоже, я начал работать.

<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>
    
ответ дан Rynardt 18.02.2013 в 23:00
источник
  • +1 Как бы вы присвоили стиль в диалоговом окне? –  Roylee 29.04.2013 в 04:34
  • Вы назначили бы его активности внутри вашего манифеста, чтобы он выглядел как диалог. (android: theme="@ style / dialog_light") –  Ostkontentitan 26.11.2013 в 13:06
  • Вы также можете передать R.style.yourstyle в качестве второго аргумента при создании экземпляра диалога –  SimpleCoder 10.06.2016 в 05:45
8

В дополнение к вышеизложенному, чтобы избежать создания цветов, я сделал следующее:

<!-- 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>
    
ответ дан Georgie 28.04.2014 в 09:19
источник
5

Это хорошо, спасибо! Я немного изменил его: когда я запускаю то, что вы предложили, весь экран окрашен в задний цвет, и диалог не выглядит так, как должен (с предыдущей активностью).

Поэтому вместо использования

@android:windowBackground

просто используйте

@android:background
    
ответ дан Couitchy 07.05.2013 в 11:20
источник