АКТУАЛИЗАЦИЯ
Същият проблем присъства в най-новото приложение Gmail. Все още не разбирам защо Google прави такава неприятна промяна на потребителския интерфейс. Обсесивното в мен полудява, когато го видя
ВЪПРОС
Имам този странен проблем с appcompat-v7 23. Проблемът, който ще опиша, не се случва с 22 серия
Можете да получите изходен код, който възпроизвежда този проблем чрез формуляр https://github.com/devserv/t/ Веднъж изграден, можете да докоснете и задържите елемент в списъка, за да активирате ActionMode
Проблем:
Когато е в ActionMode, appcompat превръща лентата на състоянието в черна. Това не се случва, ако не използвам follow
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
в моя стил v21, но трябва да го използвам, защото искам моето чекмедже за навигация да изглежда зад лентата на състоянието.
Преди използвах следното, за да избегна черната лента на състоянието, когато ActionMode стартира и приключи
public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.appColorPrimaryDark));
}
}
public void onDestroyActionMode(ActionMode actionMode) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getActivity().getWindow().setStatusBarColor(getResources().getColor(android.R.color.transparent));
}
mMode = null;
}
Горният код не създаде/избегна почерняване на лентата на състоянието, но не работи правилно на v23 на appcompat. Вместо това виждате кратка черна лента на състоянието, докато ActionMode е унищожен. Изглежда, че е свързано с анимацията, която се възпроизвежда при унищожаване на ActionMode.
Опитах се да отворя доклади за грешки, но беше отказано с коментар
Don't re-create bugs.
Изпускам ли нещо?
Ето екранните снимки за нормален и режим на действие.
com.android.support:design:28.0.0-rc01
. - person Soren Stoutner   schedule 16.08.2018