父视图高度为 match_parent 但接受来自(上一个屏幕)下方视图的点击
Parent view height as match_parent but accepting click from views under (previous screen)
我遇到了一个奇怪的问题,解决起来可能非常简单,但我不知道为什么会这样。我有两个屏幕 A 和 B。导航来自 A -> B。在 B 上,我将父视图作为 LinearLayout (LL) 作为
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/container"
android:orientation="vertical"
android:background="@color/tcRaspberry"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:animateLayoutChanges="true"
android:layout_height="match_parent">
<include
app:layout_constraintBottom_toTopOf="@+id/bottomSheetContainer"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:id="@+id/toolbarx"
layout="@layout/include_toolbarx"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_marginStart="@dimen/itinerary_start_margin"
android:layout_marginEnd="@dimen/itinerary_start_margin"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:contentDescription="@null"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/itinerary_start_margin"
app:layout_constraintStart_toStartOf="parent"
android:id="@+id/myAccountImage"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_panorama_circle_24dp"
android:layout_width="@dimen/image_size_profile"
android:layout_height="@dimen/image_size_profile"/>
<androidx.appcompat.widget.AppCompatTextView
android:textSize="20sp"
android:contentDescription="@string/travel_counsellor_contact"
android:layout_marginStart="@dimen/top_margin"
app:layout_constraintTop_toTopOf="@+id/myAccountImage"
app:layout_constraintStart_toEndOf="@+id/myAccountImage"
app:layout_constraintBottom_toBottomOf="@+id/myAccountImage"
android:id="@+id/myAccountTitle"
android:textAppearance="@style/TcTextAppearance.Bold.Header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_account"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
即使父LL的高度(id:container)被设置为match_parent并且填满了整个屏幕,它仍然接受来自前一个屏幕A的点击事件。我得到它的唯一方法是不接受点击来自 A 的是在其上放置一个 ClickListener,这对我来说似乎是一个 hack。我能做些什么来防止它从 A.
获得点击
通过 xml android:clickable="true"
使应阻止调用的视图可点击,或通过 fragment/activity
为其设置点击处理程序
我遇到了一个奇怪的问题,解决起来可能非常简单,但我不知道为什么会这样。我有两个屏幕 A 和 B。导航来自 A -> B。在 B 上,我将父视图作为 LinearLayout (LL) 作为
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/container"
android:orientation="vertical"
android:background="@color/tcRaspberry"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:animateLayoutChanges="true"
android:layout_height="match_parent">
<include
app:layout_constraintBottom_toTopOf="@+id/bottomSheetContainer"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:id="@+id/toolbarx"
layout="@layout/include_toolbarx"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_marginStart="@dimen/itinerary_start_margin"
android:layout_marginEnd="@dimen/itinerary_start_margin"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:contentDescription="@null"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/itinerary_start_margin"
app:layout_constraintStart_toStartOf="parent"
android:id="@+id/myAccountImage"
android:layout_gravity="center"
app:srcCompat="@drawable/ic_panorama_circle_24dp"
android:layout_width="@dimen/image_size_profile"
android:layout_height="@dimen/image_size_profile"/>
<androidx.appcompat.widget.AppCompatTextView
android:textSize="20sp"
android:contentDescription="@string/travel_counsellor_contact"
android:layout_marginStart="@dimen/top_margin"
app:layout_constraintTop_toTopOf="@+id/myAccountImage"
app:layout_constraintStart_toEndOf="@+id/myAccountImage"
app:layout_constraintBottom_toBottomOf="@+id/myAccountImage"
android:id="@+id/myAccountTitle"
android:textAppearance="@style/TcTextAppearance.Bold.Header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_account"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
即使父LL的高度(id:container)被设置为match_parent并且填满了整个屏幕,它仍然接受来自前一个屏幕A的点击事件。我得到它的唯一方法是不接受点击来自 A 的是在其上放置一个 ClickListener,这对我来说似乎是一个 hack。我能做些什么来防止它从 A.
获得点击通过 xml android:clickable="true"
使应阻止调用的视图可点击,或通过 fragment/activity