На TouchListener для RecyclerView отключили его прокрутку - PullRequest
0 голосов
/ 02 ноября 2018

У меня естьcyclerView, который можно прокручивать по горизонтали. Когда в программе recyclerView касаются в любом месте, должно произойти выпадающее меню. Я пробовал много способов, как OnClick и не работал. Единственное, что сработало, это onTouchListener, но после реализации прокрутка не работает.

Это код переработчикаПросмотреть

<android.support.v7.widget.RecyclerView
        android:id="@+id/rv_selected_groups"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginStart="16dp"
        android:clickable="true"
        android:layout_marginTop="0dp"
        android:orientation="horizontal"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:paddingBottom="8dp"
        android:paddingTop="8dp"
        app:layoutManager="android.support.v7.widget.LinearLayoutManager"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toLeftOf="@id/iv_dropdown"
        app:layout_constraintTop_toBottomOf="@id/tv_select_group"
        android:focusable="true" />

А вот код для onTouchListener, используемый

 mRecyclerViewSeletedGroups.setOnTouchListener(View.OnTouchListener { view, motionEvent ->
        when (motionEvent.action){
            MotionEvent.ACTION_UP -> {
                dropdownFlag = !dropdownFlag
                mPresenterImpl.onDropdownClicked(dropdownFlag)
            }
        }
        return@OnTouchListener true
    })

Так что, когда я попробовал onclick вместо onTouch, он не работал.

Я хочу реализовать эту функцию, так как прокрутка должна работать.

Как я могу решить это?

1 Ответ

0 голосов
/ 02 ноября 2018

Проблема с вашим:

return@OnTouchListener true

Если вы всегда возвращаете true, это означает:

True, если слушатель использовал событие, в противном случае - false.

Если вы всегда используете событие, ваша прокрутка не будет работать. Вам нужно пересмотреть свою логику, чтобы возвращать true только тогда, когда вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...