В настоящее время я следую предложению от https://stackoverflow.com/a/29748810/72437, чтобы изменить цвет строки состояния при входе в контекстный режим действия.Как сделать так, чтобы изменение цвета происходило одновременно и на панели состояния, и на панели инструментов контекстного действия
Однако из следующего видео, https://www.youtube.com/watch?v=2Ra56_eh7uk, мы можем наблюдать, что изменение цвета всегда происходит в строке состояния, только после этого на панели инструментов последует изменение цвета.
Есть ли способ, чтобы изменение цвета происходило одновременно, как на панели состояния, так и на панели инструментов.
@SuppressLint("NewApi")
private class ModeCallback implements ListView.MultiChoiceModeListener {
public boolean onCreateActionMode(android.view.ActionMode mode,
android.view.Menu menu) {
...
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Activity activity = getActivity();
if (activity != null) {
activity.getWindow().setStatusBarColor(actionModeStatusBarColor);
}
}
return true;
}
public boolean onPrepareActionMode(android.view.ActionMode mode, android.view.Menu menu) {
return true;
}
public boolean onActionItemClicked(android.view.ActionMode mode, android.view.MenuItem item) {
switch (item.getItemId()) {
....
}
return false;
}
public void onDestroyActionMode(android.view.ActionMode mode) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Activity activity = getActivity();
if (activity != null) {
activity.getWindow().setStatusBarColor(colorPrimaryDark);
}
}
}
}
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) {
this.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
this.getListView().setMultiChoiceModeListener(new ModeCallback());
...