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