无论我如何修改样式,红色箭头指向的框的背景颜色都不会从背景中改变。
如何更改颜色?我的目标是4.0+而不关心4.0-设备和操作系统。
这是指向my styles.xml file的链接。抱歉,由于此项目属于NDA,我必须审核一些事项。
我尝试了很多东西,包括:
android:background
windowTitleBackgroundStyle
android:background
actionBarStyle
android:background
actionBarWidgetStyle
android:actionBarItemBackground
这些都不起作用。该文本视图似乎始终坚持我的基本主题的android:background
值,并且没有任何东西可以覆盖它。
我错过了什么或做错了什么?
答案 0 :(得分:4)
你需要用windowBackground改变android:background
<style name="CCCBaseTheme" parent="@android:style/Theme.Holo">
<item name="android:windowBackground">@color/nav_background</item>
<item name="android:textColor">@color/text</item>
<item name="android:actionBarStyle">@style/CCCWidgetActionBar</item>
</style>
希望这会有所帮助。
答案 1 :(得分:1)
你的xml文件有一个有趣的部分:
<!-- ActionBar -->
<style name="CCCWidgetActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@color/nav_background</item>
<item name="android:textColor">@color/nav_text</item>
<item name="android:titleTextStyle">@style/CCCWidgetActionBarTitle</item>
<item name="android:textViewStyle">@style/CCCWidgetActionBarTitle</item>
<item name="android:windowTitleStyle">@style/CCCWindowTitle</item>
<item name="android:windowTitleBackgroundStyle">@style/CCCWindowTitleBackground</item>
<item name="android:windowBackground">@color/nav_background</item>
</style>
只需改变:
<item name="android:background">@color/nav_background</item>
通过
<item name="android:background">@color/pink</item>
或任何其他颜色。 对我来说很好。
答案 2 :(得分:1)
您可以自定义操作栏,并且无论您想要什么,都可以更改标题背景颜色。
请按照以下步骤操作:
只有这样才能使Custom Sherlock成为Title。
在App上为标题创建单独的xml文件。
该文件包含这样的内容..
在此自定义布局中,我们可以使用颜色代码更改背景颜色..
header_sherlock.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="3"
android:background="#008000"
>
<TextView
android:id="@+id/header_tvleft"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="left"
android:layout_marginTop="@dimen/margintop"
android:clickable="true"
android:paddingLeft="@dimen/layoutpaddingleft"
android:text="Textview"
android:textColor="#ffffff"
android:textSize="@dimen/header_leftbtn"
/>
<TextView
android:id="@+id/header_tvcenter"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:layout_marginTop="@dimen/margintop"
android:layout_marginRight="@dimen/sherlockpaddingright"
android:layout_marginLeft="@dimen/sherlockpaddingleft"
android:text="Textview"
android:textColor="#ffffff"
android:textStyle="bold"
android:textSize="@dimen/header_title"
/>
<TextView
android:id="@+id/header_tvright"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="right"
android:layout_marginTop="@dimen/margintop"
android:clickable="true"
android:paddingRight="@dimen/layoutpaddingright"
android:text="Textview"
android:textColor="#ffffff"
android:textSize="@dimen/header_rightbtn"
/>
</LinearLayout>
对于MainActivity或您要添加标题的活动:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.header_sherlock);
header_tvleft = (TextView) findViewById(R.id.header_tvleft);
header_tvleft.setText("LeftTitleName");
header_tvcenter = (TextView) findViewById(R.id.header_tvcenter);
header_tvcenter.setText("CenterTitleName");
header_tvright = (TextView) findViewById(R.id.header_tvright);
header_tvright.setText("RightTitleName");
尝试此方法..
答案 3 :(得分:0)
这是一个古老的问题,但我只是有完全相同的问题 - 对我来说问题是我有这个:
<item name="android:actionBarItemBackground">@drawable/btn_dark</item>
<item name="actionBarItemBackground">@drawable/btn_dark</item>
其中btn_dark是一个重复使用的drawable,用于为启用,按下和禁用状态定义颜色的通用按钮。它在较新的设备上运行良好,但在我的旧2.3手机上,我在标题上获得了灰色背景。
有趣的是,禁用状态(我将其设置为深灰色)在旧设备上应用于操作栏标题的背景。将禁用的颜色设置为透明是修复。