2012-06-06 9 views
17

Nie ma Theme.Light.Dialog do użycia z resztą mojego projektu, który używa Theme.Light.Zmień Theme.Dialog, aby wyglądał jak Theme.Light.Dialog w Androidzie

Jak zmienić Theme.Dialog, aby wyglądał jak Theme.Light wersja Dialog.

Wiem, że muszę nadpisać sekcje Theme.Dialog w styles.xml jak poniżej. Jakie elementy powinienem nadpisać przy pomocy jakich wartości?

<style name="dialog_light" parent="@android:style/Theme.Dialog"> 
    <item name="android:???????"></item> 
    <item name="android:???????"></item> 
</style> 

Mogę po prostu zrobić tło jasnoszarej szarości, ale guziki, pokrętła itp. Różnią się także pod względem jasnego motywu, aby lepiej wyglądać na jasnym tle.

EDIT

Wygląda na to, że mam pracę.

<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> 
+0

Try [to] (http://pastie.org/4037973) jeden. – Praveenkumar

Odpowiedz

29

Wygląda na to, że działa.

<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> 
+5

+1 W jaki sposób przypisałbyś styl do okna dialogowego? – Roylee

+2

Możesz przypisać go do działania wewnątrz manifestu, aby wyglądał jak dialog. (android: theme = "@ style/dialog_light") – Ostkontentitan

+0

Możesz także przekazać, R.style.yourstyle jako drugi argument podczas tworzenia wystąpienia okna dialogowego – SimpleCoder

5

To dobrze, dzięki! Po prostu zmieniłem trochę: kiedy wykonuję to, co sugerujesz, cały ekran jest pomalowany kolorem, a okno dialogowe nie wygląda tak, jak powinno (przy poprzedniej aktywności przyciemnionej).

Więc zamiast korzystania

@android:windowBackground 

wystarczy użyć

@android:background 
7

W związku z powyższym, w celu uniknięcia tworzenia się kolory, zrobiłem to:

<!-- 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>