Почему щелчок не работает, когда кнопка переполняет другой интерактивный элемент?

#java #android #kotlin #click #z-index

#java #Android #kotlin #нажмите #z-индекс

Вопрос:

Здесь у меня есть простой пользовательский макет, расширяемый из ViewGroup (кстати, я пытался расширить другой макет, не помогает) с дочерними элементами (кнопками), которые расположены вокруг центрального значка (проверка ImageIcon) и размером переполнения контейнера 50×50 (контейнер имеет clipChildren false). Почему ни z index, ни translationZ, ни elevation не помогают мне переполнять другие элементы. Проблема заключается в щелчках. Когда я нажимаю на кнопку, щелчок обрабатывается на элементе, который находится под ним (это может быть кнопка той же группы или элемента из другого элемента списка в представлении recycler). На картинке вы можете видеть: 1 — одна из кнопок в пользовательском макете, где я пытаюсь выполнить щелчок 2 — другой элемент в представлении recycler, который находится под кнопкой 3 — центральный значок, отвечающий за открытие / закрытие дуги. Когда он закрыт, все кнопки перемещаются в центр. Тогда, если я хочу открыть arc, у меня проблема с видимым z-индексом, щелчок обрабатывается не на центральном значке, а на кнопке, которая находится в центре под центральным значком. 4 являются ли элементы представления recycler основанными на epoxy controller

 <com.leadely.android.common.ArcLayout
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_marginRight="50dp"
            app:radius="70dp"
            app:hasCenteredIcon="true"
            android:clipChildren="false"
            app:skip="0"
            app:rotateBy="-120">

            <com.joanzapata.iconify.widget.IconButton
                android:id="@ id/toggleArcBtn"
                android:layout_width="50sp"
                android:layout_height="50sp"
                android:background="?selectableItemBackgroundBorderless"
                android:gravity="center"
                android:textColor="#232323"
                android:text="{fa-check}"
                android:textSize="20sp"
                android:onClick="@{(e) -> tasksListViewModel.toggleArc(e)}" />

            <Button
                style="@android:style/Widget.Material.Button"
                android:layout_width="30sp"
                android:layout_height="30sp"
                android:background="#555"
                android:gravity="center"
                android:textColor="#fff"
                android:text="1"
                android:onClick="@{(v) -> tasksListViewModel.toast(v)}"/>

            <Button
                style="@android:style/Widget.Material.Button"
                android:layout_width="30sp"
                android:layout_height="30sp"
                android:text="2"
                android:background="#555"
                android:gravity="center"
                android:textColor="#fff"
                android:onClick="@{(v) -> tasksListViewModel.toast(v)}" />

            <Button
                style="@android:style/Widget.Material.Button"
                android:layout_width="30sp"
                android:layout_height="30sp"
                android:text="3"
                android:background="#555"
                android:gravity="center"
                android:textColor="#fff"
                android:onClick="@{(v) -> tasksListViewModel.toast(v)}" />

        </com.leadely.android.common.ArcLayout>
  

Что я должен делать?

Смотрите Изображение приложения здесь

Ответ №1:

Добавьте этот код в интерактивное представление, установите для кликабельного и фокусируемого значение true.

android: кликабельный = «true» android: фокусируемый =»true»