2014-01-24 47 views
0

我有一個ViewPager活動,覆蓋整個活動。在這個ViewPager裏面是一個ListView,它只覆蓋片段的底部。 ListView可以識別滑動事件(您可以左右滑動項目),但是當您想要滑動列表項時,ViewPager會切換頁面,因此不起作用。 有沒有一種簡單的方法來處理這個問題,以便ViewPager不會收到打算用於列表的觸摸事件。Android:使用ViewPager滑動的ListView

感謝

回答

3

我的第一個想法是requestDisallowInterceptTouchEvent()可以幫助你。

public boolean onTouch(View v, MotionEvent e) { 
    if(e.getAction() == MotionEvent.ACTION_DOWN){ 
     listItem.getParent().requestDisallowInterceptTouchEvent(true); 
    } 
} 
+0

這種運作良好,但是當我改變數據的ViewPager內(並調用notifyDataSetChanged它的適配器上),而裏面的ListView刷卡它不工作了(在ViewPager翻轉,雖然我還是希望它留下來,只是通過ListView接收觸摸事件) – DominicM

+0

如果你調試它,'onTouch()'仍然在'notifyDataSetChanged()'之後被調用嗎?你在哪裏包括'onTouch()',在listView中,還是在列表中的每一項中? – evaristokbza

+0

onTouch()用ACTION_CANCEL調用,然後它不再被調用。然後,ViewPager的onTouch()被調用。我在listView中包含了onTouch,而不是所有的列表項。 – DominicM