材质按钮从布局层次结构中声明的视图中窃取单击

问题描述 投票:0回答:1

我想隐藏在稀松布下的一些内容(如抽屉布局)。此稀松布视图下的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视图现在覆盖了屏幕上的所有内容,甚至是布局层次结构中稍后的内容。

我知道我可以在内容稀松布可见的时候禁用按钮,但这看起来似乎并不正确,并且因为一些可笑的高度而感觉有权窃取点击的按钮实际上让我感到愤怒以寻求帮助。

android material-design android-button android-framelayout
1个回答
0
投票

试试这个 :

<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" />
© www.soinside.com 2019 - 2024. All rights reserved.