在概览(最近使用的应用)屏幕中设置应用程序标题颜色

37

我正在给一个应用程序添加一些仅适用于棒棒糖的样式。

我想要像Gmail这里一样改变总览屏幕的标题颜色:
enter image description here

我已经想出了以下方法:

<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>

有没有特定的属性来设置标题的颜色?

顺带一问:图标和标题能否被更改?


3
这是一个重复的问题,与https://dev59.com/bV8d5IYBdhLWcg3wYhSX相同,但由于赏金无法关闭。 - alanv
2
@alanv 很好,谢谢Alan。我认为这不是重复的问题,因为你指出的那个问题是关于更改标题颜色的,而似乎不可能实现。无论如何,那里的答案完美地回答了我的问题。如果您能回答,我将删除/转移悬赏,让您投票关闭此问题。 - MaciejGórski
@MaciejGórski 只是我的一个改进意见:如果您已经知道需要提供什么颜色,可以重写 setTaskDescription(TaskDescription) 并将相关的 TaskDescription 实例传递给 super 调用。要从源代码中跟踪,请查看 TaskViewHeader。您应该最终到达 Activity#onApplyThemeResource(....) - 这是从中调用 setTaskDescription(TaskDescription) 的位置。 - Vikram
1
@Vikram 是的,它在onCreate之前只被调用一次,但这种行为不是生命周期的一部分,也没有记录下来。开发人员首次查看执行此操作的代码时,如果没有在重写方法体中添加注释来解释其工作原理或深入挖掘Android代码,则无法理解它。在onCreate中自己调用它是表明代码意图的直接方式,即使开发人员不知道这个方法的存在,他们也可以查看javadoc。我喜欢写更少的代码,但更重要的是,我喜欢用我写的代码清晰明了。 - MaciejGórski
在不添加自定义 styles.xml 文件到项目中的情况下,能否在清单文件中设置一个恒定的标题栏颜色? - Viktor Sehr
显示剩余3条评论
1个回答

53

1
进一步澄清:
  • 标签 - 卡片标题上的文本
  • 图标 - 左侧位图图标(通常是在“colorPrimary”颜色上看起来不错的图标)
  • colorPrimary - 卡片标题颜色(通常与工具栏颜色相同,但不一定)
这个解决方案对我有用,+1 :)
- milosmns
2
运行良好。根据 minSdkVersion,可能需要包装在 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ... } 中。 - Jonik
3
一旦你意识到它不能在onCreate()中运行,就会很好地工作。将这段代码放在onResume()中,它就能正常工作了。 - user149408
4
SDK 19 是否有可能实现这个功能? - cherry-wave
1
太棒了,在我的情况下,我不得不将它放在onStart()方法中才能让它正常工作。 - Dariush Malek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接