Кажется, что переход между Theme.AppCompat.Light.DarkActionBar и Theme.AppCompat.Light не влияет на цвет текста и кнопку "закрыть" внутри меню "Отдыха". colorPrimary
изменяет цвет заголовка, но текст и кнопка всегда черные. Любые идеи?
Android Lollipop recents/многозадачный стиль заголовка, текст всегда черный
Ответ 1
Насколько я могу судить, не может изменить цвет текста ярлыка и кнопку закрытия, потому что он автоматически устанавливается системой. Единственное, что вы можете контролировать, это значок, цвет бара и текст надписи:
Activity.setTaskDescription(new ActivityManager.TaskDescription(label, icon, color));
Вы можете проверить и посмотреть, как система автоматически выбирает цвета ярлыка и кнопки закрытия, поставляя темный или светлый цвет указанной функции (т.е. устанавливая ее на черный, текст будет белым и наоборот).
Документы: https://developer.android.com/about/versions/android-5.0.html#Recents
Javadocs: https://developer.android.com/reference/android/app/Activity.html#setTaskDescription(android.app.ActivityManager.TaskDescription)
- EDIT - Здесь более подробная информация о том, как платформа определяет цвет текста для задач.
В приложении SystemUI показан последний пользовательский интерфейс задачи. В нем есть модель задачи Task.java:156, которая определяет, является ли контраст между вашим цветомPrimary (указанным в описании задачи) и белым над 3 его будет использовать светлый цвет. См. Utilities.java:119 о том, как выполняется сравнение контраста.
Текстовые цвета, используемые для светлых и темных, можно найти здесь, в SystemUI colors.xml.
Ответ 2
Ответ r0adkll правильный, поскольку использование Activity.setTaskDescription()
дает вам контроль над цветом фона, значок (который должен быть квадратным или иначе он растянут) и ярлык. Если вы вообще не вызываете Activity.setTaskDescription()
, и пусть система сама по себе создает заголовок Recents, она будет делать следующее:
- Значок будет значком активности, установленным
android:icon
в манифесте ( неandroid:logo
) - Метка будет ярлыком активности, установленным
android:label
в манифесте - Цвет фона будет
android:colorPrimary
Цвет ярлыка (и кнопки закрытия) будет светлым или темным в зависимости от того, насколько темный или светлый фон. Невозможно изменить шрифт метки.