gpt4 book ai didi

android - 以编程方式更改 supportActionBar 的颜色

转载 作者:行者123 更新时间:2023-11-29 19:10:45 25 4
gpt4 key购买 nike

我遇到了一个问题,即更改支持 ActionBar 的可绘制背景会更改大部分栏的颜色,但会在文本和图标周围保留旧颜色。我试过更改支持 ActionBar 和我用来制作它的 ToolBar 的颜色。我已经尝试了许多使 UI 元素无效的不同方法。我已经厌倦了设置颜色和文本是不同的顺序。我试过隐藏和显示文本。我就是不能让它变成一种纯色。

Should be all orange

这是我的 ActionBar 样式:

<style name="LocationBar" parent="ThemeOverlay.AppCompat.ActionBar">
<item name="android:textColorPrimary">@color/text_color_primary_inverse</item>
<item name="android:textColorSecondary">@color/text_color_primary_inverse</item>
<item name="android:background">@color/weather_cool</item>
</style>

这就是我将它添加到我的 Activity 中的方式:

<android.support.v7.widget.Toolbar
android:id="@+id/location_bar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:theme="@style/LocationBar"/>

在 Java 代码中,我将其设置为 supportActionBar:

_locationBar = (Toolbar)findViewById(R.id.location_bar);
setSupportActionBar(_locationBar);

然后在获取天气后,我尝试像这样调整颜色:

ColorDrawable warmDrawable = new ColorDrawable(ContextCompat.getColor(this, R.color.weather_warm));
getSupportActionBar().setBackgroundDrawable(warmDrawable);

这就是您在图片中看到的结果。大部分条形图会改变颜色,但不会全部改变颜色。

最佳答案

...changing the background drawable of the support ActionBar changes the color of most of the bar but leaves the old color around the text and icons...

发生这种情况的原因是因为您使用的是 android:theme 而不是 styletheme 应用于您的 Toolbar 中的每个子项,在本例中包括 TextView 标题背景和您的设置按钮背景。 style 旨在用于 View 级别,并且只会应用于您的 Toolbar 背景。

之前

<android.support.v7.widget.Toolbar
...
android:theme="@style/LocationBar" />

之后

<android.support.v7.widget.Toolbar
...
style="@style/LocationBar" />

关于android - 以编程方式更改 supportActionBar 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45452984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com