我想顯示PreferenceActivity,它被設置爲Theme.Light對話框。該對話框顯示了在深色背景深色文字:Android:從Theme.Light活動顯示對話框問題
我認爲它使用深色文本,因爲它繼承了父活動,或類似文字的顏色。我希望對話框可以在黑色背景上使用白色文字,也可以使用帶有深色文字的白色背景,因爲PreferenceActivity設置爲Theme.Light時會執行此操作。
這似乎是一個已知問題,我發現的解決方法涉及創建和使用擴展Theme.Dialog並使用它來實例化對話框的自定義樣式。例如:
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:textColor">?android:attr/textColorPrimaryInverseDisableOnly</item>
</style>
Dialog dialog = new Dialog(context, R.style.CustomDialog);
我試過這個,但沒有區別。我還爲textColor嘗試了許多不同的值,其中沒有一個修改了對話框的文本顏色。作爲一個全面的檢查,我說:
<item name="android:background">#FFFF0000</item>
的風格,這就造成了紅色背景的對話(讓我確信,我實例化對話框正確)。
離我最近的一個解決方案就是將對話框的背景顏色設置爲白色,這會給出下面的對話框。但是,這不是一個很好的解決方案,因爲一些版本或者一些設備可能不會使用相同的行爲反轉文本顏色,當我看到:
那麼,有沒有設置文本顏色上的好方法從Theme.Light活動顯示對話框?
我似乎記得與類似的東西掙扎。從來沒有得到它的工作。我最終的解決方法是擁有多個價值資源,其中一個將薑餅的顏色定義爲黑色,即在res/values-v8中,以及在res/values中爲淡色。 –
我的誘惑是將列表的背景硬編碼爲白色,列表的文字顏色爲黑色。希望這可以保證白色背景上的黑色文本,而不管設備或版本。 – ab11
好的,那肯定會奏效。但我認爲這種痛苦的關鍵是融入設備主題......薑餅比以前的版本要暗很多,因此是特殊情況。 –