在Android中,正确是否可以为视图,空白区域和操作栏设置不同的背景颜色?
例如,我在PreferenceFragment中有一个PreferenceScreen。我有这些代码:
样式XML:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="MyTheme" parent="android:Theme.Holo">
<item name="android:textColor">@color/blue1</item>
<item name="android:background">@color/bg</item>
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:titleTextStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar.Solid">
<item name="android:background">@color/brown1</item>
<item name="android:windowBackground">@color/brown1</item>
</style>
</resources>
我的PreferenceFragment类:这看起来像个黑客!
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v=super.onCreateView(inflater, container, savedInstanceState);
((ListView) v.findViewById(android.R.id.list)).setBackgroundColor(getResources().getColor(R.color.blue1));
return v;
}
这已经使ListView项目具有bg
背景颜色,以及它们之后的空白blue1
背景颜色(请注意,我必须以相反的方式设置它们才能使其工作!),ActionBar有brown1
背景,但它上面的文字没有,那真是太丑了!另外,windowBackground
到底做了什么?
编辑:我已经能够通过这个黑客改变标题的背景:
int actionBarTitleId = Resources.getSystem().getIdentifier("action_bar_title", "id", "android");
if (actionBarTitleId > 0) {
TextView title = (TextView) findViewById(actionBarTitleId);
if (title != null)
title.setBackgroundColor(getResources().getColor(R.color.brown1));
}
现在我该如何为徽标和徽标左侧的“向上”箭头执行此操作?
答案 0 :(得分:0)
解决方案是从样式XML中删除titleTextStyle
。