我想更改导航图标的颜色为ActionMode的颜色。我可以更改ActionMode背景的颜色,但是我不知道如何更改ActionMode导航的颜色。
我想更改后退导航和所选数字指示器的颜色。
ActionMode类:
private class ActionModeCallback implements ActionMode.Callback {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
Tools.setSystemBarColor(MainActivity.this, R.color.colorDarkBlue2);
mode.getMenuInflater().inflate(R.menu.menu_delete, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_delete) {
deleteInboxes();
mode.finish();
return true;
}
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
recycleAdapter.clearSelections();
actionMode = null;
Tools.setSystemBarColor(MainActivity.this, R.color.colorPrimary);
}
}
工具类:
public class Tools {
public static void setSystemBarColor(Activity act, @ColorRes int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = act.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.setStatusBarColor(act.getResources().getColor(color));
}
}
}
答案 0 :(得分:1)
您可以更改ActionMode
的颜色,例如
<style name="AppTheme" parent="Theme.AppCompat.Light">
...
<!--<item name="actionModeBackground">@color/colorAccent</item>--> <!-- 1 option to change background of ActionMode -->
<item name="actionModeStyle">@style/ActionModeStyle</item>
</style>
<style name="ActionModeStyle" parent="@style/Widget.AppCompat.ActionMode">
<item name="background">@color/colorAccent</item> <!-- 2 option to change background of ActionMode -->
<item name="titleTextStyle">@style/ActionModeTitleStyle</item>
<item name="closeItemLayout">@layout/layout_close</item>
</style>
<style name="ActionModeTitleStyle">
<item name="android:textSize">20sp</item>
<item name="android:textColor">#0f0</item>
</style>
layout_close.xml
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/action_mode_close_button"
style="?attr/actionModeCloseButtonStyle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginEnd="16dip"
android:layout_marginRight="16dip"
android:clickable="true"
android:focusable="true"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:tint="#00f"
app:srcCompat="?attr/actionModeCloseDrawable" tools:ignore="ContentDescription"/>
结果
您可以考虑更改主应用程序(如果可能)。
例如,现在我认为您正在使用Theme.AppCompat.Light
,因此导航图标和标题颜色为BLACK
如果您将主题更改为Theme.AppCompat.Light.DarkActionBar
和Theme.AppCompat.NoActionBar
,则导航图标和标题颜色将变为WHITE
Theme.AppCompat.Light.DarkActionBar
希望有帮助