2013-03-24 97 views
3

我有一個自定義DialogPreference對話有它的佈局設置了一個RelativeLayout的,它包含以下內容:Android的自定義對話框的TextView和背景顏色

  • 複選框
  • 的TextView
  • 文本字段

這在Android 4.0+中很好,因爲我們使用的主題是Theme.Light,所以對話框的背景顏色是白色,默認文本是黑色的用於複選框標籤, TextView中。然而,在2.3.3中,背景顏色是深灰色,所以很難看到文字......但是主題仍然是Theme.Light。

我認爲製作自定義對話框是必要的,因爲複選框啓用/禁用文本字段。目前,我正在爲此Dialog白色的相關佈局製作背景顏色......但我不太喜歡這種解決方案,因爲有些情況下2.3.3上的某些其他手機可能沒有白色作爲默認對話框背景...

有沒有更好的方法來解決這個問題?

我發現這個人有同樣的問題:Custom Support Dialog Fragment text is the wrong color

另外的問題:Android: Issue with showing dialog from Theme.Light activity

編輯:附截圖。這是在運行2.3.3的LG Optimus 2X上的樣子。在我的同事的三星Galaxy也運行2.3.3,背景更暗,所以你幾乎看不到文字。

enter image description here

+0

您可以簡單地覆蓋自定義主題中的對話框背景,甚至使用資源限定符提供2.3.3所需的顏色。無論如何:請張貼屏幕截圖,顯示您遇到的問題。 – 2013-03-24 21:26:59

+0

我想保留操作系統的默認樣式...我不想使用1個自定義主題,以便2.3.3和4.0+中的對話框將具有相同的樣式...如果這是不可能的,那麼是的,這是我猜我會做什麼。 – 2013-03-24 21:48:57

回答

0

你可以做定製對話框主題樣式文件,如:

less than API 11: 

<style name="MyDialogTheme" parent="android:Theme.Light" > 

API 11 and forward: 

<style name="MyDialogTheme" parent="android:Theme.Holo.Dialog" > 

然後在您的片段對話使用 「MyDialogTheme」:

... ... 
ContextThemeWrapper context = new ContextThemeWrapper(getActivity(), R.style.MyDialogTheme); 
AlertDialog.Builder builder = new AlertDialog.Builder(context); 
... ... 

希望這種幫助。

相關問題