RecyclerView за cardView кликабелен, когда он не должен быть - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть просмотр карты, за которым стоит просмотр в «Рекомендованных контактах», очень похожий на номеронабиратель по умолчанию в android. CardView располагается в нижней части экрана и занимает около 70% экрана, а RecyclerView увеличивает свою высоту до match_parent. Когда RecyclerView прокручивается, CardView исчезает и раскрывает весь список.

Пользователь может щелкнуть один из элементов RecyclerView, чтобы сделать вызов напрямую. Проблема заключается в том, что элементы позади CardView, которые не видны пользователю, также могут быть кликабельными.

Как получить элементы RecyclerView, которые видны только как кликабельные? (т. е. пока карта видна)

xml код:

<ScrollView
        android:id="@+id/sv_suggested_contacts"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="expandSuggestions">

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/rv_suggested_contacts"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </ScrollView>

    <androidx.cardview.widget.CardView
        android:id="@+id/dialer_card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:cardElevation="8dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

[...]

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Я предполагаю, что ваше требование состоит в том, что просмотр карты должен блокировать все клики, чтобы элементы, расположенные ниже, не воспринимали щелчок вправо.

Если это так, и вы уверены, что просмотр карты находится поверх просмотра утилизатора, вам просто нужно установить onClickListener для просмотра карт и ничего не делать внутри него. В основном пустой щелчок.

Или вы можете в xml для просмотра карты добавить

android:onClick="nullClick"

и в упражнении создать пустую функцию

public void nullClick(View view) {
}

в зависимости от того, как вы как.

0 голосов
/ 21 февраля 2020

вы можете скрыть (setVisibility (View.GONE) элемент за утилизатором, или установить их не активируемыми

...