我想隐藏在稀松布下的一些内容(如抽屉布局)。此稀松布视图下的MaterialComponents按钮正在接收对稀松布视图的点击,这是一个主要问题。
内容稀松布视图:
<FrameLayout
android:id="@+id/scrim"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone"
android:background="@color/transparent"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
窃取点击的按钮:
<com.google.android.material.button.MaterialButton
android:id="@+id/add_at_start"
android:theme="@style/ButtonArrowShapedLeft"
style="@style/ButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="Add"
android:visibility="gone"
tools:visibility="visible"
app:icon="@drawable/ic_add_black_24dp"
app:layout_constraintStart_toStartOf="@+id/container"
app:layout_constraintTop_toBottomOf="@+id/container" />
我已经确定问题出在提升按钮内。如果我将稀松布的高度设置为2dp
,则该按钮不会获得任何点击,尽管它可能具有比稀松布视图更高的dp高度。但这并没有解决我的问题,它实际上使情况更糟,因为scrim视图现在覆盖了屏幕上的所有内容,甚至是布局层次结构中稍后的内容。
我知道我可以在内容稀松布可见的时候禁用按钮,但这看起来似乎并不正确,并且因为一些可笑的高度而感觉有权窃取点击的按钮实际上让我感到愤怒以寻求帮助。
试试这个 :
<com.google.android.material.button.MaterialButton
android:id="@+id/add_at_start"
android:theme="@style/ButtonArrowShapedLeft"
style="@style/ButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="Add"
android:visibility="gone"
android:clickable="true"
tools:visibility="visible"
app:icon="@drawable/ic_add_black_24dp"
app:layout_constraintStart_toStartOf="@+id/container"
app:layout_constraintTop_toBottomOf="@+id/container" />