我已经尝试查看以下主题以找到我的问题的答案:
Android unable to change background color of ActionBar
Change Background color of the action bar using AppCompat
...但这些解决方案都没有帮助我解决问题。
我正在尝试更改操作栏的背景颜色(以及其他内容)。到目前为止,我已经能够改变其他一切的风格。这是我的styles.xml:
<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>
这是我的Android Manifest:
<?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>
答案 0 :(得分:0)
当你想要使用Java来设置任何视图样式时,你必须牺牲一个显示ActionBar样式的轻微闪烁几毫秒,因为它根据样式资源上的布局定义设置了布局。
如果你想隐藏Java,它会在开始时显示一个动作条的闪烁。
在其他造型案例中也是如此。
你最好从style.xml
设置样式,但是如果稍微眨眼就可以使用Java。
答案 1 :(得分:0)
好吧,经过几天摆弄它,我发现问题主要是因为当你改变时,android(带有新材料主题和所有......)改变了操作栏中的颜色以下属性:
<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/dark_green
。