在AppCompact中,我们使用colorPrimary,colorPrimaryDark,colorAccent,textColorPrimary等属性作为App主题。
我想知道我们可以在片段或ViewGroup中覆盖或更改这些颜色为不同的颜色。比如,我们可以仅为NavigationView更改这些颜色,还是只能为片段中的ExpandableListView更改这些颜色。
修改
我尝试用不同的Style重写,但它不是Overriding
<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 in Adapter:
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);
请注意:我不想在我的R.layout.list_item
中使用txtListChild.setTextColor
或android:textColor =“@ color / black”更改文字颜色
答案 0 :(得分:0)
是的,你可以这样做
<ExpandableListView
android:theme="@style/AnotherTheme"/>
编辑:
将膨胀线更改为此,如果需要,请替换parent
convertView = infalInflater.inflate(R.layout.list_item, parent, false);
答案 1 :(得分: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;
}
};