Android 无法更改操作栏的背景色
我已经尝试查看以下线程以找到问题的答案: …但这些解决方案都没有帮助我解决问题 我正在尝试更改actionbar的背景色(除其他外)。到目前为止,我已经能够改变其他一切的风格。以下是my styles.xml:Android 无法更改操作栏的背景色,android,android-actionbar,Android,Android Actionbar,我已经尝试查看以下线程以找到问题的答案: …但这些解决方案都没有帮助我解决问题 我正在尝试更改actionbar的背景色(除其他外)。到目前为止,我已经能够改变其他一切的风格。以下是my styles.xml: <resources> <!-- Base application theme. --> <style name="AppTheme" parent="@android:style/Theme.Holo.Light">
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="android:windowBackground">@color/dark_green</item>
<item name="android:buttonStyle">@style/AppTheme.Button</item>
<item name="android:editTextStyle">@style/AppTheme.EditText</item>
<item name="android:listViewStyle">@style/AppTheme.ListView</item>
<item name="android:windowActionBar">true</item>
<!--<item name="android:colorBackground">@color/dark_green</item>-->
</style>
<style name="AppTheme.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/dark_green</item>
<item name="background">@color/dark_green</item>
<item name="android:colorPrimary">@color/dark_green</item>
<item name="android:colorPrimaryDark">@color/dark_green</item>
</style>
<!-- Button theme -->
<style name="AppTheme.Button">
<item name="android:background">@drawable/background_button</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:padding">20dp</item>
</style>
<!-- Edit Text Theme -->
<style name="AppTheme.EditText">
<item name="android:background">@drawable/background_edittext</item>
<item name="android:padding">14dp</item>
<item name="android:layout_marginBottom">16dp</item>
<item name="android:textColorHint">@color/light_gray</item>
<item name="android:textCursorDrawable">@null</item>
<item name="android:textSize">20dp</item>
</style>
<style name="AppTheme.ListView">
<item name="android:textColor">@color/text_color</item>
<item name="android:divider">@android:color/transparent</item>
</style>
<declare-styleable name="FixedAspectRatioFrameLayout">
<attr name="aspectRatioWidth" format="dimension" />
<attr name="aspectRatioHeight" format="dimension" />
</declare-styleable>
</resources>
@style/AppTheme.ActionBar
@style/AppTheme.ActionBar
@颜色/深绿色
@style/AppTheme.Button
@style/AppTheme.EditText
@style/AppTheme.ListView
真的
@颜色/深绿色
@颜色/深绿色
@颜色/深绿色
@颜色/深绿色
@可绘图/背景按钮
@android:彩色/白色
20dp
@可绘制/背景/编辑文本
14dp
16dp
@颜色/浅灰色
@空的
20dp
@颜色/文字颜色
@android:彩色/透明
这是我的Android清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="io.myapp.app">
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/myapp_button"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".LoginActivity"
android:label="@string/title_activity_login" />
<activity
android:name=".HomeActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ListOffersActivity"
android:parentActivityName=".HomeActivity"
android:launchMode="singleTop"/>
<activity
android:name=".ViewOfferActivity"
android:label="@string/title_activity_view_offer"
android:parentActivityName=".ListOffersActivity">
</activity>
<activity
android:name=".SettingsActivity"
android:label="@string/title_activity_settings"
android:parentActivityName=".HomeActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="io.myapp.app.HomeActivity" />
</activity>
<activity android:name=".ListSavedOffersActivity"
android:label="Saved Offers"
android:parentActivityName=".HomeActivity"
android:launchMode="singleTop"></activity>
</application>
</manifest>
当应用程序启动时,如果您想使用Java设置任何视图的样式,您必须在几毫秒内牺牲显示ActionBar样式的轻微闪烁,因为它根据样式资源上的布局定义设置布局 如果您想隐藏Java,它将在开始时显示actionbar的闪烁 在其他造型案例中也是如此
因此,最好从
style.xml
中设置样式,但如果稍微闪烁一下就可以使用Java。好吧,经过几天的摆弄,我发现问题主要是因为android(具有新的材质主题和所有…)在更改以下属性时更改了actionbar中的颜色:
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:colorPrimary">@color/dark_green</item>
<item name="android:colorPrimaryDark">@color/darker_green</item>
</style>
@颜色/深绿色
@颜色/深绿色
这将操作栏的颜色正确设置为
@color/深绿色
您使用Holo
主题而不是AppCompat
?这两个示例都使用主题。AppCompat
主题作为基本主题。您在代码中使用了旧的主题.Holo
。我没有理由使用Holo。我更新了代码,使其使用AppCompat,如其他答案所示,但我仍然有相同的问题。有趣的是。。。如果我在活动中这样做:ActionBar=getActionBar();杆.立根拉深(新的彩色拉深(安卓.R.彩色.白色))代码>…它只能在单个活动中工作,请使用AppCompat主题发布您的样式,这样我们就可以抓住任何可能的错误。请参阅下面我的答案。我终于解决了这个问题。我应该注意的是,这些项目应该添加到我之前使用的向后兼容的操作栏样式之外。