Я добавляю в приложение некоторые стили только для Lollipop.
Я хочу изменить цвет заголовка на обзорном экране, например Gmail здесь:
Я понял, что могу сделать
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:colorPrimary">@color/my_favorite_color</item>
</style>
для этого, но я хотел бы указать только цвет для этого случая, как я могу сделать:
<item name="android:statusBarColor">@color/my_favorite_color<item>
Есть ли специальный атрибут для установки цвета заголовка?
Дополнительный вопрос: можно ли также изменить значок и заголовок?
setTaskDescription(TaskDescription)
и передать соответствующий экземплярTaskDescription
супервызову. Чтобы отследить источник, просмотрите TaskViewHeader. Вы должны закончить наActivity#onApplyThemeResource(....)
- отсюда вызываетсяsetTaskDescription(TaskDescription)
. - person Vikram   schedule 24.11.2014onApplyThemeResource
. Из кода мы можем ясно сделать вывод, что фон нельзя изменить с помощью темы приложения, как иstatusBarColor
, за исключением использованияcolorPrimary
. Я не уверен, что полагаться на то, чтоsetTaskDescription
вызывается фреймворком, было бы хорошо. Не так плохо, как пытаться вызватьActivityManagerNative.getDefault().setTaskDescription
через отражение (что я только что сделал, чтобы попытаться сделать значок другого размера, но это не сработало), но я думаю, что предпочитаю более простой способ иметь вспомогательный класс совместимости сif (SDK_INT >= LOLLIPOP)
. - person MaciejGórski   schedule 25.11.2014...which I just did to try to make a different size of icon, but it didn't work...
Вероятно, это потому, чтоTaskViewHeader
использует значокFixedSizeImageView
для значка приложения: проверьте макет xml здесь: recent_task_view_header.xml.I'm not sure relying on setTaskDescription being called by the framework would be a good thing.
Почему бы и нет? Мне кажется, чтоsetTaskDescription()
вызывается по крайней мере один раз: при создании активности и установке ее темы. - person Vikram   schedule 26.11.2014onCreate
, но это поведение не является частью жизненного цикла, не документировано, и разработчики, впервые просматривающие код, который это делает, не смогут понять его без комментариев в теле переопределенного метода. объясняя, как это работает, или углубляясь в код Android. Самостоятельный вызов вonCreate
— это простой способ заявить о назначении кода, и даже если разработчик не знал о существовании этого метода, он мог просто посмотреть javadoc. Мне нравится писать меньше кода, но больше мне нравится быть ясным с кодом, который я пишу. - person MaciejGórski   schedule 27.11.2014I like writing less code, but more than that I like being clear with the code I write.
:) Я не думал об этом. Я согласен - явный вызов был бы лучше. - person Vikram   schedule 28.11.2014