在 Activity 中从重叠布局中点击了上一个布局
Previous layout get clicked from overlaped layout in Activity
我有两个相关的布局。第一个有 spinner 和 recyclerview,第二个有一个 imageview。单击按钮时,第二个布局与第一个布局重叠。但是当我点击第二个布局时,第一个布局微调器和 recylerview 被点击并显示在第二个布局上。
添加
android:clickable="true"
android:focusable="true"
到您的图像视图布局。它不会将您的点击传播到您的第一个布局。
当您单击 ImageView 时,单击事件会自动传播到其下的视图。如果在 ImageView 中使用后阻止点击事件,那么它将不会触发 ImageView 上的任何点击事件。
例如
class TouchBlockingImageView(context: Context?, attrs: AttributeSet?) : ImageView(context, attrs) {
override fun onTouchEvent(event: MotionEvent?): Boolean {
// Use your logic to handle click event
return true
}
}
如果我们在 onTouchEvent
中 return true
那么 android 将不会将该触摸事件传递给下面的下一层。
您应该将可见性设置为消失。
所以它不会获得任何点击
答案:-
(您的布局/任何视图).setVisibility("VIEW.GONE");
我有两个相关的布局。第一个有 spinner 和 recyclerview,第二个有一个 imageview。单击按钮时,第二个布局与第一个布局重叠。但是当我点击第二个布局时,第一个布局微调器和 recylerview 被点击并显示在第二个布局上。
添加
android:clickable="true"
android:focusable="true"
到您的图像视图布局。它不会将您的点击传播到您的第一个布局。
当您单击 ImageView 时,单击事件会自动传播到其下的视图。如果在 ImageView 中使用后阻止点击事件,那么它将不会触发 ImageView 上的任何点击事件。
例如
class TouchBlockingImageView(context: Context?, attrs: AttributeSet?) : ImageView(context, attrs) {
override fun onTouchEvent(event: MotionEvent?): Boolean {
// Use your logic to handle click event
return true
}
}
如果我们在 onTouchEvent
中 return true
那么 android 将不会将该触摸事件传递给下面的下一层。
您应该将可见性设置为消失。 所以它不会获得任何点击
答案:- (您的布局/任何视图).setVisibility("VIEW.GONE");