2015-09-07 44 views
1

在AppCompact中,我們使用colorPrimary,colorPrimaryDark,colorAccent,textColorPrimary等屬性作爲App Themes。覆蓋textColorPrimary,用於片段或ViewGroup或小部件的textColorSecondary - AppCompact

我想知道我們是否可以在片段或ViewGroup中覆蓋或將這些顏色更改爲不同的顏色。就像,我們可以只改變這些顏色的NavigationView或我們可以改變這些顏色只爲一個ExpandableListView在片段。

編輯:
我試着用不同的方式重寫,但它不是在適配器重寫

<style name="DarkText" parent="AppTheme"> 
    <item name="android:textColorPrimary">@color/black</item> 

    <item name="android:textColorSecondary">@color/black</item> 
</style> 

<ExpandableListView 
    android:layout_height="match_parent" 
    android:theme="@style/DarkText" 
    android:groupIndicator="@android:color/transparent" 
    android:layout_width="match_parent"/> 

我ChildVeiw:

final String childText = (String) getChild(groupPosition, childPosition); 

    if (convertView == null) { 
     LayoutInflater infalInflater = (LayoutInflater) this._context 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.list_item, null); 
    } 

    TextView txtListChild = (TextView) convertView 
      .findViewById(R.id.lblListItem); 

    txtListChild.setText(childText); 

請注意:我不想要使用txtListChild.setTextColor或android:textColor =來更改文本的顏色如果需要的話

變化膨脹到該線,更換parent:「@彩色/黑白」在我R.layout.list_item

回答

0

是的,你可以做這樣的

<ExpandableListView 
    android:theme="@style/AnotherTheme"/> 

編輯

convertView = infalInflater.inflate(R.layout.list_item, parent, false); 
+0

這不是重寫前一個主題,這是我在這裏發佈的全部原因 – user3616287

+0

請檢查我的編輯 –

+0

也,這可能取決於你是否正在充氣ListView的孩子正確 –

0

嘗試在陣列適配器重寫一個getview()

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), 
     android.R.layout.simple_list_item_1, mStringList) { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 
     TextView text = (TextView) view.findViewById(android.R.id.text1); 
     text.setTextColor(Color.BLACK); 
     return view; 
    } 
}; 
+1

更改ViewGroup的顏色動態不是一個問題,我問我們是否可以完全覆蓋它。我不想在每個使用代碼的地方改變它。 – user3616287