Android 在不同的活动中分别处理工具栏外观

Android 在不同的活动中分别处理工具栏外观,android,android-toolbar,Android,Android Toolbar,我有两个活动,比如活动1和活动2 在这两个活动中,我都添加了工具栏 代码 活动1: 但是上面的代码没有做任何事情,我也尝试像这样手动设置背景色 但它并没有返回正确的颜色,我的原色是蓝色,但现在工具栏的背景是紫色 任何人都可以指导我如何解决这个问题 编辑 工具栏样式: <style name="ToolBarStyle" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="android

我有两个活动,比如活动1和活动2

在这两个活动中,我都添加了工具栏

代码

活动1:

但是上面的代码没有做任何事情,我也尝试像这样手动设置背景色

但它并没有返回正确的颜色,我的原色是蓝色,但现在工具栏的背景是紫色

任何人都可以指导我如何解决这个问题

编辑

工具栏样式:

    <style name="ToolBarStyle"
    parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
    <item name="actionMenuTextColor">@color/colorAccent</item>
    <item name="android:background">@color/colorPrimary</item>
    <item name="android:windowActionBarOverlay">true</item>
</style>

@android:彩色/白色
@android:彩色/白色
@颜色/颜色重音
@颜色/原色
真的
默认工具栏(所需的工具栏)

当前工具栏(从activity2切换回后)


更改
工具栏
颜色时,是否可以尝试此代码:

 public static void changeToolbarColor(ActionBar actionBar,int color){
    actionBar.setBackgroundDrawable(new ColorDrawable(color));
}
使用时:
changeToolbarColor(getSupportActionBar(),color)

确保在创建时已执行此操作:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

你不需要用这个

toolbarBackground = toolbar.getBackground(); 
并且无需在onResume()中执行某些操作

只需使用设置

toolbar.setBackgroundResource(R.color.price_color);
在onCreate()中此代码块之后的活动中

如果你遇到了错误

toolbar.setBackgroundColor(R.color.price\u color)

使用ContextCompat.getColor方法

toolbar.setBackgroundColor(ContextCompat.getColor(this, R.color.primary_color));

事实证明,activity1的工具栏使用了toolbar2的alpha(来自activity2),因为我正在activity2上更改它(使工具栏透明),所以更改alpha完成了以下工作:

    @Override
protected void onResume() {
    super.onResume();

    toolbarBackground =  toolbar.getBackground();
    toolbarBackground.setAlpha(255);

    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
        toolbar.setBackgroundDrawable(toolbarBackground);
    } else {
        toolbar.setBackground(toolbarBackground);
    }

}
@覆盖
受保护的void onResume(){
super.onResume();
toolbarBackground=toolbar.getBackground();
setAlpha(255);
int sdk=android.os.Build.VERSION.sdk\u int;
if(sdk
检查style.xml文件中的工具栏样式..我删除了活动工具栏的工具栏样式1 still toolbar是透明的@TK1505能否共享工具栏样式文件?@AmanGupta请检查更新的问题检查下面的答案。我尝试了你的建议,男士仍然是紫色的@yasin@remyboys你能告诉我你的颜色吗,您如何将颜色属性传递给方法?这里是我的颜色值
#03A9F4
#0288d1
我的代码正在工作,我正在我的应用程序中使用它,也许您可以添加更多代码,我会看看吗?伙计,我感谢您的努力,但我认为您应该多读一次我的问题,我的工具栏在第一次启动时完全正常,但一旦我在活动之间切换(从活动1切换到活动2),我就遇到了这个问题,在我的活动2中,我使我的工具栏透明。我正确地阅读了你的问题,伙计,你不需要在简历()中做任何事情。正如@Yasin Kaçmaz所说,为什么要更改工具栏?在两个不同的活动中,必须有两个不同的工具栏。因此,您只需在两个活动的onCreate()方法中更改工具栏的颜色。并且您只使用了活动而不是片段。那么你为什么要做这么多事情呢。我不明白。为什么要更改工具栏?你必须在两个不同的活动中有两个不同的工具栏我已经在单独的xmls@YasinKaçmaz
android:id=“@+id/toolbarTagDetailActivity”
android:id=“@+id/toolbarTrendingActivity”中有两个单独的工具栏
@那么为什么你要在简历中更改工具栏颜色呢?我不明白这一点。因为我的activity1不知怎么地将工具栏的alpha设置为
x
(由activity2拍摄)我也很困惑,如果我有单独的工具栏,那么为什么会发生这种情况
toolbar.setBackgroundResource(R.color.price_color);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setBackgroundColor(ContextCompat.getColor(this, R.color.primary_color));
    @Override
protected void onResume() {
    super.onResume();

    toolbarBackground =  toolbar.getBackground();
    toolbarBackground.setAlpha(255);

    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
        toolbar.setBackgroundDrawable(toolbarBackground);
    } else {
        toolbar.setBackground(toolbarBackground);
    }

}