簡體   English   中英

無法更改操作欄的背景顏色

[英]Cannot Change Background Color For Action Bar

我已經嘗試查看以下線程來找到問題的答案:

Android無法更改ActionBar的背景顏色

使用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清單:

<?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中隱藏,它會在開始時顯示操作欄的閃爍。

其他樣式也是如此。

因此,最好從style.xml對其進行樣式設置,但是如果可以稍作眨眼,則可以使用Java。

好吧,經過幾天的擺弄,我發現問題主要是由於當您更改以下屬性時,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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM