繁体   English   中英

如何更改所有活动的背景,但不更改ActionBar中的背景?

[英]how to change Background for all activities but does not change it in ActionBar?

我需要这样的ActionBar: 更正ActionBarb,但我必须手动为布局中的每个活动编写背景!

但我希望在<style>有这样的背景,可以自动将其用于每个活动:

纠正背景,但ActionBar文本中的bg有问题

我应该更改什么,因为我只能在<style>使用背景,而不对每个活动都应用背景,并且t have any problems with Title of ActionBar ? When I comment t have any problems with Title of ActionBar ? When I comment在styles.xml中t have any problems with Title of ActionBar ? When I comment @ color / bg_activity`时,我得到正确的Bar(图1)

我在AndroidManifest.xml中使用:

<uses-sdk
    android:maxSdkVersion="22"
    android:minSdkVersion="13"
    android:targetSdkVersion="22" />

<application
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.AbnActionBarHolo" >

我的/res/values/styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Base application theme. -->

    <!-- // AbnActionBarHolo // -->
    <style name="Theme.AbnActionBarHolo" parent="@android:style/Theme.Holo">

        <!-- Customize your theme here. -->
        <!-- <item name="android:textColor">@color/foreground_text</item> -->
        <item name="android:textColor">@color/actionbar_text</item>
        <item name="android:background">@color/bg_activity</item>
        <!--  -->
        <item name="android:actionBarStyle">@style/AbnActionBar</item>
        <item name="android:actionBarTabTextStyle">@style/AbnActionBarTabText</item>
        <item name="android:actionMenuTextColor">@color/actionbar_text</item>
    </style>

    <!-- ActionBar styles -->
    <style name="AbnActionBar" parent="@android:style/Widget.Holo.ActionBar">

        <!-- <item name="android:titleTextStyle">@style/MyActionBarTitleText</item> -->
        <item name="android:textColor">@color/actionbar_text</item>
        <item name="android:background">@drawable/actionbar_background_2</item>

        <!-- Support library compatibility -->
        <item name="background">@drawable/actionbar_background_2</item>
    </style>

    <!-- ActionBar title text -->
    <style name="AbnActionBarTitleText" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
        <item name="android:textColor">@color/actionbar_text</item>
        <item name="android:background">@drawable/actionbar_background_2</item>
        <item name="android:shadowColor">@color/actionbar_shadow_text</item>
    </style>

    <!-- ActionBar tabs text styles -->
    <style name="AbnActionBarTabText" parent="@android:style/Widget.Holo.ActionBar.TabText">
        <item name="android:textColor">@color/actionbar_text</item>
    </style>


</resources>

/res/values-v14/styles.xml

<resources>

    <!--
        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.
    -->


    <!-- ActionBar styles -->
    <style name="AbnActionBar" parent="@android:style/Widget.Holo.ActionBar">
        <item name="android:titleTextStyle">@style/AbnActionBarTitleText</item>
        <item name="android:textColor">@color/actionbar_text</item>
        <item name="android:background">@drawable/actionbar_background_2</item>

        <!-- Support library compatibility -->
        <item name="background">@drawable/actionbar_background_2</item>
    </style>

</resources>

/res/values/colors.xml

<resources>

    <!-- // ABN HOLO // -->
    <color name="actionbar_text">#FF000000</color>
    <color name="actionbar_shadow_text">#FFd3d3d3</color>

    <!--  -->
    <color name="black_overlay">#66000000</color>
    <color name="bg_activity">#ff000f2f</color>
    <color name="foreground_title">#ffff8800</color>
    <color name="foreground_version">#ffffa900</color>
    <color name="foreground_text">#FFFFFFFF</color>

</resources>

无需为操作栏创建主题,而是在布局文件夹中创建您选择的布局xml文件(例如actionbar.xml),并在每个活动中使用它。

示例:我的actionbar.xml文件位于布局文件夹中

      //----------ACTION BAR----------//
        ActionBar actionbar = getActionBar();


            TextView title;
                getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
                getActionBar().setCustomView(R.layout.actionbar); 
                title= (TextView)findViewById(R.id.title);
                title.setText("General Categories"); 

这是创建自定义操作栏的最佳方法。

指定“活动”的背景时,应使用android:windowBackground而不是android:background background。

<!-- // AbnActionBarHolo // -->
<style name="Theme.AbnActionBarHolo" parent="@android:style/Theme.Holo">

    <!-- Customize your theme here. -->
    <!-- <item name="android:textColor">@color/foreground_text</item> -->
    <item name="android:textColor">@color/actionbar_text</item>
    <item name="android:windowBackground">@color/bg_activity</item>
    <!--  -->
    <item name="android:actionBarStyle">@style/AbnActionBar</item>
    <item name="android:actionBarTabTextStyle">@style/AbnActionBarTabText</item>
    <item name="android:actionMenuTextColor">@color/actionbar_text</item>
</style>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM