当前位置: 首页 > 知识库问答 >
问题:

更改操作栏主题时出错

席宜修
2023-03-14

我是Android的新手!我使用Android的动作条样式生成器自定义了动作条的主题,我的样式名为payam,样式兼容性为AppCompat。

我将生成的res文件复制并粘贴到项目文件夹中,并将清单记录更改为/android:theme=“@style/theme.payam”/

在我的项目中,我有一个扩展ActionBarActivity(DetailText Activity)的类,但是在运行我的应用程序之后,什么都没有改变,动作条的颜色也没有改变!

在Android操作条样式生成器中,如果我选择样式兼容Holo,当我运行我的项目时,这个活动会崩溃,eclips说您需要使用theme.appcompat与这个活动一起使用!

<resources>

<style name="Theme.Payam" parent="@style/Theme.AppCompat.Light">
    <item name="actionBarItemBackground">@drawable/selectable_background_payam</item>
    <item name="popupMenuStyle">@style/PopupMenu.Payam</item>
    <item name="dropDownListViewStyle">@style/DropDownListView.Payam</item>
    <item name="actionBarTabStyle">@style/ActionBarTabStyle.Payam</item>
    <item name="actionDropDownStyle">@style/DropDownNav.Payam</item>
    <item name="actionBarStyle">@style/ActionBar.Solid.Payam</item>
    <item name="actionModeBackground">@drawable/cab_background_top_payam</item>
    <item name="actionModeSplitBackground">@drawable/cab_background_bottom_payam</item>
    <item name="actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Payam</item>


</style>

<style name="ActionBar.Solid.Payam" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
    <item name="background">@drawable/ab_solid_payam</item>
    <item name="backgroundStacked">@drawable/ab_stacked_solid_payam</item>
    <item name="backgroundSplit">@drawable/ab_bottom_solid_payam</item>
    <item name="progressBarStyle">@style/ProgressBar.Payam</item>
</style>

<style name="ActionBar.Transparent.Payam" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="background">@drawable/ab_transparent_payam</item>
    <item name="progressBarStyle">@style/ProgressBar.Payam</item>
</style>

<style name="PopupMenu.Payam" parent="@style/Widget.AppCompat.Light.PopupMenu"> 
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_payam</item> 
</style>

<style name="DropDownListView.Payam" parent="@style/Widget.AppCompat.Light.ListView.DropDown">
    <item name="android:listSelector">@drawable/selectable_background_payam</item>
</style>

<style name="ActionBarTabStyle.Payam" parent="@style/Widget.AppCompat.Light.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator_ab_payam</item>
</style>

<style name="DropDownNav.Payam" parent="@style/Widget.AppCompat.Light.Spinner.DropDown.ActionBar">
    <item name="android:background">@drawable/spinner_background_ab_payam</item>
    <item name="android:popupBackground">@drawable/menu_dropdown_panel_payam</item>
    <item name="android:dropDownSelector">@drawable/selectable_background_payam</item>
</style>

<style name="ProgressBar.Payam" parent="@style/Widget.AppCompat.ProgressBar.Horizontal">
    <item name="android:progressDrawable">@drawable/progress_horizontal_payam</item>
</style>

<style name="ActionButton.CloseMode.Payam" parent="@style/Widget.AppCompat.Light.ActionButton.CloseMode">
    <item name="android:background">@drawable/btn_cab_done_payam</item>
</style>

<!-- this style is only referenced in a Light.DarkActionBar based theme -->
<style name="Theme.Payam.Widget" parent="@style/Theme.AppCompat">
    <item name="popupMenuStyle">@style/PopupMenu.Payam</item>
    <item name="dropDownListViewStyle">@style/DropDownListView.Payam</item>
</style>

我在显式主题中选择了第一个样式名(theme.payam)的名字,是真的吗?

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

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/Theme.Payam"
    >
    <activity
        android:name=".SplashScreen"
        android:label="" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="" >
    </activity>
    <activity
        android:name=".ContentList"
        android:label="" >
    </activity>
    <activity
        android:name=".DetailText"
        android:label="" >
    </activity>
            <activity
        android:name=".FavDetail"
        android:label="" >
    </activity>
            <activity
        android:name=".FavList"
        android:label="" >
    </activity>
</application>

任何主意都欢迎!

共有1个答案

秦承允
2023-03-14

由于您使用的是AppCompat,您需要在主主题(theme.payam)中添加这两行。colorPrimary代表ActionBar颜色,colorPrimaryDark代表ActionBar上状态栏的颜色。同时在colors.xml中添加firstcolor和secondcolor的值

<style name="Theme.Payam" parent="@style/Theme.AppCompat.Light">

    <item name="colorPrimary">@color/firstcolor</item>
    <item name="colorPrimaryDark">@color/secondcolor</item>

</style>
 类似资料:
  • 问题内容: 我目前正在为我的应用程序实现主题支持,其中一部分是更改操作栏应用程序图标。选择“ Holo Light”时,我想使用深色图标。除了设置动作栏应用程序图标的部分以外,其他所有操作均通过该方法完成。我要使用的代码是: 我得到的错误是“这里没有这样的参考”。应该如何正确完成? 顺便说一句,我是那么没有动作吧Sherlock的东西。 问题答案: 您将操作栏扔在那里。返回的实例,然后您需要调用该

  • 我不知道如何在Android上更改操作栏项目“onPressed”的颜色。我说的不是动作条的背景色,而是蓝色覆盖状态。我怎样才能改变它的颜色或者至少去掉它?例如,带有homeAsUpIndicator的应用程序图标。 我试图更改操作栏样式和菜单项样式,但没有任何效果。 谢谢 编辑此处是我迄今为止的实现: 我的风格xml: 然后我有一个动作巴罗哥的可抽绳: 操作栏项目的“我的菜单xml”: 最后,项

  • 该项目的最小sdk为9,最大sdk为19。 我已在res/values文件夹中创建了一个xml文件: red_actionbar.xml 至 它确实改变了我应用程序的主题,所以问题出在风格上但我不知道如何解决。

  • 我想在我的应用程序中应用不同的主题。我想更改导航栏和浮动操作按钮的颜色。 现在我可以更改导航栏的颜色,但浮动操作按钮的颜色没有变化。当主题更改时,如何动态更改工厂的颜色? 风格: 绝妙的: 晶圆厂选择器: 谢谢你...

  • 我有一个应用程序,它使用主题属性(颜色Primary黑暗)来为Android v21上的状态栏着色: 这很好。现在,当用户长按列表项并进入上下文操作模式时,我可以使用属性actionModeBackground为CAB栏上色,使其看起来像这样: 所以动作栏是灰色的,这是我想要的,但状态栏仍然使用主题深色。我不想要那个,我想换成深灰色或者黑色。 我该怎么做?我看不到任何主题属性在这里起作用。

  • 我有一个图像按钮在我的应用程序中的每一个活动。当图像按钮被按下时,我需要转到主屏幕。我正在使用代码 但是,当我在单击图像按钮后从主屏幕导航时,它应该会从它调用的地方转到相同的页面。 例如,我有Activity1、Activity2、Activity3、Activity4等…Activity1是首页,我会选择国家,然后去Activity2,然后去Activity3,等等,但如果我从Activity4