onClick 移除 ImageView 的涟漪效应
onClick removes ripple effect from ImageView
我有一个简单的 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 侦听器时,涟漪效应不再起作用,考虑到涟漪效应是针对可以是 selected/clicked!
的元素,这很奇怪
ImageView imageView = (ImageView)findViewById(R.id.image_view);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Logic.
}
});
有谁知道如何保持 onClick 和 ripple 吗?
像这样在父视图 (FrameLayout) 上设置 onClickListener:((View)imageView.getParent()).setOnClickListener...
ImageView.getParent() 正在返回一个 ViewParent。确保父视图 (FrameLayout) 实现 ViewParent 接口,否则转换将失败。
我有一个简单的 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 侦听器时,涟漪效应不再起作用,考虑到涟漪效应是针对可以是 selected/clicked!
的元素,这很奇怪ImageView imageView = (ImageView)findViewById(R.id.image_view);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Logic.
}
});
有谁知道如何保持 onClick 和 ripple 吗?
像这样在父视图 (FrameLayout) 上设置 onClickListener:((View)imageView.getParent()).setOnClickListener...
ImageView.getParent() 正在返回一个 ViewParent。确保父视图 (FrameLayout) 实现 ViewParent 接口,否则转换将失败。