【问题标题】:How to make the support Toolbar background transparent?如何使支持的工具栏背景透明?
【发布时间】:2014-10-26 14:40:14
【问题描述】:

有没有办法让新的Android支持Toolbar:

android.support.v7.widget.Toolbar

有透明背景吗?

我尝试将colorPrimary 设置为 ARGB (#00ffffff),但它只是给了我一个实心灰色条。而Toolbar 只允许我设置背景可绘制对象。将可绘制的背景设置为透明 PNG 是否符合规定,或者有更好的方法吗?

理想情况下,我可以在代码中执行此操作/对其进行动画处理,以便某些活动具有透明条,而某些活动则没有。

提前致谢。

【问题讨论】:

标签: java android android-toolbar


【解决方案1】:

您可以将背景设置为 android 的默认透明色,效果很好。将此添加到您想要透明的布局中Toolbar

android:background="@android:color/transparent"

如果您想以编程方式更改 alpha,您可以通过修改 Toolbar 背景本身的 alpha 来实现。只需获取Drawable 的实例并在那里设置 alpha:

mToolbar = findViewById(R.id.my_toolbar);
mToolbar.getBackground().setAlpha(0);

【讨论】:

  • 非常感谢您的提示!那效果很好。我意识到我看到的默认灰色实际上是工具栏背后的背景。
  • 是否可以用浮点变量设置工具栏背景 alpha?
  • @ebarrenechea 我为我的详细信息屏幕做了同样的事情。但是当我回到第一个屏幕时,我在第一个屏幕上的工具栏也变得透明。为什么会这样..?
  • @iDroidExplorer 你的屏幕是否共享同一个工具栏(即它们是同一个活动中的片段)?
  • @Ramesh 我也遇到了同样的问题。看起来 Toolbar 的这个 ColorDrawable 背景是在活动之间共享的,所以当你改变这个 ColorDrawable 的 alpha 或颜色时,它也会在其他活动中改变。解决这个问题的方法是设置一个新的 ColorDrawable 作为工具栏的背景。
【解决方案2】:

要回答 Nicholas Pesa 的问题以及将来可能会回答的其他问题,您可以使用比率来设置带有浮点数的 alpha,例如。

mToolbar.getBackground().setAlpha((int)(myFloatValue) * 255);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多