【问题标题】:Android: Button ripple only shows if there is no background color under it?Android:按钮波纹仅在其下方没有背景颜色时才显示?
【发布时间】:2016-02-02 10:50:55
【问题描述】:

我的屏幕右上角有一个带有波纹选择器的ImageView。由于某种原因,波纹不起作用。 请看我的图片! http://i.imgur.com/COFEQAO.png(我需要 10 个代表来发布图片-_-)

View B 具有深绿色背景色。一旦我删除了这个背景颜色,波纹就会起作用。

我的ripple_selector.xml:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/button_highlight">
</ripple>

我正在像这样在 ImageView 上设置波纹: android:background="@drawable/ripple_selector"

如果我给波纹选择器一个蒙版或背景,它也可以工作,但我不想屏蔽波纹。可能是什么问题呢?泰。

【问题讨论】:

  • Ripple 将在提供的掩码或父视图的背景上绘制自身。如果父视图具有透明背景,则不会绘制波纹。如果您的 RelativeLayout 有两个孩子在彼此的顶部,顶部有波纹,底部会遮盖波纹,因为波纹仍然绘制在 RelativeLayout 的背景上,而不是直接在视图下方。

标签: android background-color ripple rippledrawable


【解决方案1】:

我不知道这是一个错误还是应该是波纹可绘制对象的预期行为,但我得出的结论是,如果波纹可绘制对象放置在不属于其自身的背景颜色之上View/@987654322 @,它不会被绘制。

【讨论】:

  • 这是预期行为。没有遮罩的波纹会在视图的父级上绘制自身。如果某些东西(视图 B)遮住了父级,您将看不到涟漪。
猜你喜欢
  • 2015-08-13
  • 1970-01-01
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
  • 2013-08-06
  • 2017-02-21
相关资源
最近更新 更多