Я хочу скрыть некоторую часть контента под сеткой (как в макете ящика).
Кнопки 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
, кнопка не получит щелчков, несмотря на то, что она, вероятно, имеет более высокий угол возвышения, чем вид холста.
Но это не решает мою проблему, а на самом деле делает ее еще хуже, потому что представление scrim теперь охватывает все на экране, даже содержимое, которое намного позже в иерархии макетов.
Я знаю, что могу просто отключить кнопки, когда сетка контента видна, но это не совсем правильно, и кнопки, имеющие право на кражу кликов только из-за какого-то нелепого возвышения, на самом деле злит меня достаточно, чтобы обратиться за помощью.