【问题标题】:ActionBar Fill Entire Bar (No Grey Background)ActionBar 填充整个栏(无灰色背景)
【发布时间】:2014-03-21 21:26:52
【问题描述】:

需要帮助

我只是无法让我的标题栏/操作栏将颜色更改为红色 (#ff0000),它始终保持灰色。

样式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ThemeSelector" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/ActionBar</item>
</style>

<style name="ActionBar" parent="android:style/Widget.Holo.ActionBar">     
    <item name="android:background">#ff0000</item>
</style>
</resources>

更新:(主祭)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.twostarii.actionbardemo"
android:versionCode="1"
android:versionName="1.0" >

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

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

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

【问题讨论】:

  • 您是否将样式应用于清单文件中的活动?
  • 是的,当我删除行时它可以工作:android:theme="@android:style/Theme" > 但是当我插入上面的行以便我的图像可以显示时,我得到一个错误:"你不能将自定义标题与其他标题功能结合起来”顺便说一下,我的背景图片在标题栏/操作栏上很好,我想更改标题栏/操作栏的唯一原因是因为我的标题栏图片无法填充父级,有一点两侧以及顶部和底部的灰色阴影,所以我想更改标题栏颜色以与背景图像混合。
  • 我认为你没有将样式应用到活动中
  • 您有背景可绘制对象并且您想更改操作栏的颜色吗?我认为两者都不可能

标签: android xml


【解决方案1】:

您可以动态设置操作栏的颜色,

    public  ActionBar mActionBar;

    mActionBar = getActionBar();
    mActionBar.setBackgroundDrawable(new ColorDrawable(0xff00DDED));
    mActionBar.setDisplayShowTitleEnabled(false);
    mActionBar.setDisplayShowTitleEnabled(true);

或者在 Static 中,你应该在 manifest.xml 中添加你的样式,

  android:theme="@style/ThemeSelector"

为您的活动

【讨论】:

  • 为什么重复的答案你可以编辑你以前的答案
【解决方案2】:

您可以动态设置操作栏的颜色,

    public  ActionBar mActionBar;

    mActionBar = getActionBar();
    mActionBar.setBackgroundDrawable(new ColorDrawable(0xff00DDED));
    mActionBar.setDisplayShowTitleEnabled(false);
    mActionBar.setDisplayShowTitleEnabled(true);

【讨论】:

  • 我的应用程序因该代码而崩溃,我也想尽可能避免使用 java 并使用 xml,因为我已经定义了这个://requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); //setContentView(R.layout.activity_main); //getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);正如我所提到的,现在已将其注释掉:1)要么我的标题图像带有灰色操作栏,要么 2)我有我的红色操作栏但没有图像,我无法将两者结合起来
  • @TwoStarII 你不能两者兼得
  • 我不明白为什么不呢,灰色的操作栏只是一种颜色,为什么不能是红色的,并且我的红色徽标图像位于其上方?
  • @TwoStarII 我知道你不能,但我不能回答为什么。有一个适合您要求的颜色的drawable,并将drawable作为背景。如果你想试一试,你就会知道这是不可能的
  • 嗨,这就是我所做的,但我的 drawable 无法填充 actionbar,我仍然可以在顶部、底部和侧面看到一点灰色,因此很明显我的 drawable 不是我的 actionbar而是放在操作栏的顶部 -title_bar.xml: android:id="@+id/logo" android:layout_width="match_parent" android:layout_height="wrap_content" android:scaleType="fitXY" android:gravity="fill_horizo​​ntal " android:src="@drawable/logo" android:layout_marginLeft="0dp"
【解决方案3】:

你需要改变这个

android:theme="@android:style/Theme" >

android:theme="@style/ThemeSelector" >

在清单文件中

查看此内容以供参考

Navigation drawer change color

【讨论】:

  • 它在 下设置为 ThemeSelector 如果我在 > 下从 Theme 更改为 ThemeSelector 我收到错误:“错误:错误:未找到与给定名称匹配的资源 (在“主题”处,值为“@android:style/ThemeSelector”)。”仅供参考..我会粘贴我的 xml 文件和 java 代码,但我可以在回复 cmets 时让代码字段 (Ctr + K) 工作
  • @TwoStarII android:style/ ThemeSelector 不是这样的"@style/ThemeSelector"
  • @TwoStarII 你可以编辑你的问题并在那里发布更新
  • @TwoStarII 将此android:theme="@android:style/Theme" 更改为android:theme="@style/ThemeSelector"
  • @TwoStarII 至少你现在应该看到红色了。忘记背景drawable。有用吗??
猜你喜欢
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 2015-10-23
  • 1970-01-01
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多