我有一个简单的ImageView包装在FrameLayout中,以给它一个连锁反应:
<FrameLayout
android:id="@+id/container"
android:layout_width="250dp"
android:layout_height="250dp"
android:clickable="true"
android:foreground="?android:attr/selectableItemBackground">
<ImageView
android:id="@+id/image_view"
android:layout_width="250dp"
android:layout_height="250dp"
android:src="@drawable/image"/>
</FrameLayout>
这样可以很好地添加涟漪效果。然而,当我向ImageView添加一个onClick监听器时,涟漪效应不再起作用,考虑到涟漪效应是可以选择/点击的元素,这很奇怪!
ImageView imageView = (ImageView)findViewById(R.id.image_view);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Logic.
}
});
有没有人知道如何保持onClick和涟漪?
答案 0 :(得分:5)
在父视图(FrameLayout)上设置onClickListener,如下所示:((View)imageView.getParent()).setOnClickListener...
ImageView.getParent()返回一个ViewParent。确保父View(FrameLayout)实现ViewParent接口或转换将失败。