1

我試圖使用umano中的SlidingUpPanel,並將滑塊設置爲ViewPager。與SlidingUpPanel中的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> 

回答

5

嘗試:

  • 使用的ViewPager的setDragView方法。
  • 使用setEnableDragViewTouchEvents,以便dragview/ViewPager可以擁有自己的觸摸事件的 事件。

或者使ViewPager與ViewPager分開,以便拖動並相應地將DragView設置爲此視圖,則ViewPAger應該單獨接收觸摸事件並可以處理它們。 (後者是我如何做,並與其他佈局一起工作)

+0

這種方式可行,但它需要具有類似功能的「拖動手柄」,並且ViewPager僅支持左右滑動。我仍然希望找到一個解決方案,允許ViewPager垂直拖動。 –

+0

我試過這個沒有結果。您的意思是: slidingUpPanelLayout.setDragView(((MainActivity)getActivity())。viewPager); slidingUpPanelLayout.setEnableDragViewTouchEvents(true); – Giorgio