【问题标题】:PrimaryColor of Toolbar is Transparent on Resume工具栏的 PrimaryColor 在 Resume 上是透明的
【发布时间】:2016-01-17 19:39:07
【问题描述】:

我有一个奇怪的问题,我认为它与主题有关。

我将我的应用程序分为三个部分:仪表板活动、列表活动和详细信息活动。每个活动都有相同的主题。但是从活动三恢复后,我的工具栏是透明的并且失去了他的原色。

我可以通过复制主题并重命名来避免这种情况。

有人对此有解决方案吗?

<style name="TransAppTheme" parent="AppTheme">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
</style>

<style name="AppTheme" parent="AppTheme.Base"/>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:textColorPrimary">@color/text_primary</item>
    <item name="android:textColorSecondary">@color/text_secondary</item>
    <item name="colorPrimary">@color/dukes_blue_dark</item>
    <item name="colorPrimaryDark">@color/dukes_blue_statusbar</item>
    <item name="colorAccent">@color/accent_amber_200</item>
    <item name="colorButtonNormal">@color/dukes_blue_dark</item>
    <item name="colorControlNormal">@color/dukes_blue_dark</item>
    <item name="colorControlActivated">@color/dukes_blue_dark</item>
</style>

【问题讨论】:

  • 能否分享相关代码
  • 我明天发布我的代码。
  • 您是否在详细活动或其他地方为工具栏设置动画,将颜色设置/更改为透明?也许一些滚动效果或动画?
  • @DavidMedenjak 是的,我为我的工具栏设置了动画。在滚动期间淡入透明。但是在我的列表和详细信息活动中,我没有重复使用相同的工具栏实例。

标签: android android-theme android-toolbar


【解决方案1】:

是的,我为我的工具栏设置了动画。在滚动期间淡入透明。但在我的列表和详细信息活动中,我不会重复使用相同的 Toolbar 实例

这种行为的原因在于动画工具栏可绘制,我遇到了同样的问题。

由于工具栏使用相同的样式/主题,工具栏的可绘制颜色被缓存。修改工具栏颜色(动画)将导致这个缓存颜色可绘制实例改变并保持改变。样式无效,颜色透明,这也会影响你的父活动。这和我想的一样多。

您可以通过为动画工具栏使用不同的可绘制对象轻松更改此设置:

// mToolbar is the toolbar you are trying to animate
final int color = ContextCompat.getColor(background.getContext(), R.color.primary);
if (Build.VERSION.SDK_INT > 15) {
    mToolbar.setBackground(new ColorDrawable(color));
} else {
    //noinspection deprecation
    mToolbar.setBackgroundDrawable(new ColorDrawable(color));
}

这将阻止您的动画版本重复使用相同的可绘制对象并影响您的其他活动。

【讨论】:

  • 感谢您的提示。看看这个。
  • 是的,这就是问题所在。我做 mToolbar.setBackgroundDrawable( mToolbar.getBackgroundDrawable().mutate() );
猜你喜欢
  • 1970-01-01
  • 2015-07-05
  • 2023-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
  • 1970-01-01
相关资源
最近更新 更多