2013-04-11 43 views
1

我剛纔使用Android,如何爲TextView Widgets主題字體顏色?

<style name="AppBaseTheme" parent="Theme.Sherlock.Light"> 
</style> 

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:windowBackground">@drawable/background</item> 
</style> 

我的主題應用了黑色的背景圖片,現在我想改變的只是我的文字意見,白色的顏色,使他們對黑暗的背景

我可見認爲設置了android:文字顏色爲TextView中會做像這樣

<!-- Application theme. --> 
<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:windowBackground">@drawable/background</item> 
    <item name="android:textViewStyle">@style/Ff1TextViewStyle</item> 
</style> 


<style name="Ff1SpinnerViewStyle" parent="android:Widget.TextView"> 
    <item name="android:textColor">@color/sysWhite</item> 
    <item name="android:textStyle">bold</item> 
</style> 

但讓我失望這只是完全充塞了各種各樣的事情一樣飛旋文字和微調下拉文本,ActionBa的伎倆[R通過更改文本,以白色白色背景,所有這一切我是完全滿意之前下拉菜單加我,我還沒有使用或者還沒有發現尚未能很好用白色文本最終確定其他控件。

我覺得很難相信android主題是如此搞砸,我無法自信地設置TextView widgtes的文本顏色而不影響小部件,我只能假設它是TextView小部件的子項,所以我認爲這只是我缺乏責任的知識,而且我希望並且尋求啓發,因爲這必須是一個共同的要求。

任何幫助表示讚賞。

回答

4

我真的不知道,如果你只能爲TextView設置的樣式,因爲ActionbarSpinnerViews包含TextView作爲他們的孩子的太多,所以會影響他們太爲你找到答案。在我看來,你應該創建一個風格,並將其設置爲你的TextView的。一些與此類似:

<style name="MyTextView" parent="@android:style/TextAppearance.Small"> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:textColor">@android:color/white</item> 
    <item name="android:textSize">12sp</item> 
</style> 

,並在您TextView的XML聲明中使用它:

<TextView 
    style="@style/MyTextView" /> 

或者,你可以做的第二件事是創建自定義TextView

public class MyTextView extends TextView { 

    public MyTextView(Context context){ 
     super(context); 
     this.setTextColor(android.R.color.white); 
    } 
} 

,並使用MyTextView在XML文件:

<com.my.package.name.MyTextView 
    android:id="@+id/my_textview" /> 

編輯:

爲什麼設置android:textViewStyle影響所有其他觀點的僅僅是因爲如果你看在Android的源更近,你會看到,在其他視圖中使用的每一個TextView的風格是android.Widget.TextView孩子的事情。所以,你可以在這種情況下,在我看來,最好的辦法是建立一個單一的風格,它在XML設置爲您TextView的。

希望這些信息對您有所幫助!

+0

自定義TextView小部件看起來像是目前最好的方式。謝謝。 – jamesc

+0

感謝您的解決方案,該解決方案將爲我節省大量的單個「TextView」小部件中的代碼重複 –

1

您可以創建一個樣式,只適用到一個特定的元素在你的TextView小號如在您的佈局xml文件:

<TextView 
    style="@style/Ff1SpinnerViewStyle" 
    android:id="@+id/myView" /> 

您將適用標準的主題,你的活動,只有元素,你覆蓋的風格在你的佈局文件將其外觀改變。

你不會需要重寫AppBaseTheme任何TextView特定屬性。

+0

是的,謝謝,但我有50 + TextViews和增長,所以我想使用主題 – jamesc

相關問題