我有 2 个 Activity ,例如 Activity1 和 Activity2
并且在这两个 Activity 中我添加了工具栏
代码
Activity 1:
<android.support.v7.widget.Toolbar
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:id="@+id/toolbarTrendingActivity"
android:elevation="5dp"
android:textAlignment="center"
android:background="@color/colorPrimary"
app:theme="@style/ToolBarStyle">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAlignment="center"
android:layout_gravity="center"
android:id="@+id/toolbar_title"
android:textSize="20sp"
android:textStyle="bold"
android:background="#00000000"
android:textColor="#ffffff"
android:text="Title" />
</android.support.v7.widget.Toolbar>
Activity 2
<android.support.v7.widget.Toolbar
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:id="@+id/toolbarTagDetailActivity"
android:elevation="5dp"
android:textAlignment="center"
android:background="@color/colorPrimary"
app:theme="@style/ToolBarStyle">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textAlignment="center"
android:text="toolbar2"
android:layout_gravity="center"
android:id="@+id/textView_ToolbarTagDetailActivity_title"
android:textSize="20sp"
android:textStyle="bold"
android:background="#00000000"
android:textColor="#ffffff" />
</android.support.v7.widget.Toolbar>
如您所见,两个工具栏都有一个唯一的 ID
我正在使activity2的
工具栏透明,工作正常,但是当我从activity2
切换到activity1
时,我的activity1的
工具栏也是透明的
为了取回它,我在 Activity1 上执行此操作:
@Override
protected void onCreate() {
toolbarBackground = toolbar.getBackground();
}
@Override
protected void onResume() {
super.onResume();
int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
toolbar.setBackgroundDrawable(toolbarBackground);
} else {
toolbar.setBackground(toolbarBackground);
}
}
但它没有返回正确的颜色,我的primaryColor是蓝色,但现在工具栏的背景是紫色
任何人都可以指导我如何解决这个问题?
编辑
工具栏样式:
<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>
默认工具栏(所需工具栏)
当前工具栏(从 Activity2 切换回来后)
最佳答案
你不需要使用这个,
toolbarBackground = toolbar.getBackground();
并且无需在 onResume() 中执行任何操作。
只需使用设置
toolbar.setBackgroundResource(R.color.price_color);
在您的 Activity 中 onCreate() 中的此代码块之后
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
如果您在
中遇到错误toolbar.setBackgroundColor(R.color.price_color);
使用ContextCompat.getColor方法来实现
toolbar.setBackgroundColor(ContextCompat.getColor(this, R.color.primary_color));
关于android - 分别处理不同 Activity 上的工具栏外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38572096/