单击内部视图元素时波纹效果不起作用(Android Appcelerator)

Ripple effect not working when clicking inside view elements (Android Appcelerator)

https://gyazo.com/7ffd965136f18e44aa87c591e3b90ed9

正如您在我提供的 link 中看到的那样,当我单击视图中的 Label 或 ImageView 时,涟漪效果不起作用。我该如何解决这个问题?

我在 6.1.2GA 和 6.2.2GA SDK 中都遇到了这个问题

这是我的 XML 文件:

<CardView id="selectCard">
    <View layout='horizontal' backgroundColor="#fafafa" touchFeedback="true" touchFeedbackColor="#808080">
        <ImageView class="icons" id="locationIcon" image="/icons/address.png" top="8dp" bottom="8dp" left="16dp" />
        <Label class="titleLabel smallText" text="L('selectInMap')"  />
    </View>
</CardView>

我尝试删除我的 CardView 中的视图,然后将 touchFeedback 和 touchFeedbackColor 属性设置为 CardView,但是我完全看不到任何连锁反应

在标签上设置 touchEnabled:false,imageview 应该会修复它

如果您不需要知道用户具体点击了哪个元素,我建议将 touchEnabled="false" 用于阻止连锁反应的 UI 元素。

您可以在文档中阅读更多相关信息:http://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Label-property-touchEnabled

涟漪效应主要是用来让用户知道这个区域是touchable/clickable或者会在touch/click上执行一些操作。

正如 Rene Pot 的回答,这适用于 Android 21+ 的任何 Ti SDK。您甚至可以在 Ti.UI.TableView 上使用相同的 hack,方法是在所有 UI 元素上设置 touchEnabled : false,以便在整行中使用 Ripple。

这就是为什么 Android 为按钮提供所有维度的涟漪效果的原因,因为按钮严格应该在 touch/click 上执行操作。