Взаимодействие с ViewPager в SlidingUpPanel

Я пытаюсь использовать SlidingUpPanel из umano и сделать слайдер ViewPager.

Однако при попытке прокрутки влево и вправо ViewPager не двигается. Похоже, что сенсорные события перехватываются SlidingUpPanel.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <com.sothree.slidinguppanel.SlidingUpPanelLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/slider_layout"
        android:layout_gravity="bottom">

        <!-- Top Panel -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </LinearLayout>

        <!-- Sliding Panel -->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >

            <android.support.v4.view.ViewPager
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/pager">
            </android.support.v4.view.ViewPager>

        </LinearLayout>
    </com.sothree.slidinguppanel.SlidingUpPanelLayout>

</RelativeLayout>

1 ответ

Пытаться:

  • Используйте метод setDragView для ViewPager.
  • Используйте setEnableDragViewTouchEvents, чтобы dragview / ViewPager мог иметь свои собственные сенсорные события.

В качестве альтернативы, создайте отдельный View отдельно от ViewPager, который предназначен для перетаскивания, и соответственно установите DragView в этот View, ViewPAger должен получать сенсорные события отдельно и может обрабатывать их. (последнее, как я это делаю и работает с другим макетом)

Другие вопросы по тегам