0
我有一個ViewPager活動,覆蓋整個活動。在這個ViewPager裏面是一個ListView,它只覆蓋片段的底部。 ListView可以識別滑動事件(您可以左右滑動項目),但是當您想要滑動列表項時,ViewPager會切換頁面,因此不起作用。 有沒有一種簡單的方法來處理這個問題,以便ViewPager不會收到打算用於列表的觸摸事件。Android:使用ViewPager滑動的ListView
感謝
我有一個ViewPager活動,覆蓋整個活動。在這個ViewPager裏面是一個ListView,它只覆蓋片段的底部。 ListView可以識別滑動事件(您可以左右滑動項目),但是當您想要滑動列表項時,ViewPager會切換頁面,因此不起作用。 有沒有一種簡單的方法來處理這個問題,以便ViewPager不會收到打算用於列表的觸摸事件。Android:使用ViewPager滑動的ListView
感謝
我的第一個想法是requestDisallowInterceptTouchEvent()可以幫助你。
public boolean onTouch(View v, MotionEvent e) {
if(e.getAction() == MotionEvent.ACTION_DOWN){
listItem.getParent().requestDisallowInterceptTouchEvent(true);
}
}
這種運作良好,但是當我改變數據的ViewPager內(並調用notifyDataSetChanged它的適配器上),而裏面的ListView刷卡它不工作了(在ViewPager翻轉,雖然我還是希望它留下來,只是通過ListView接收觸摸事件) – DominicM
如果你調試它,'onTouch()'仍然在'notifyDataSetChanged()'之後被調用嗎?你在哪裏包括'onTouch()',在listView中,還是在列表中的每一項中? – evaristokbza
onTouch()用ACTION_CANCEL調用,然後它不再被調用。然後,ViewPager的onTouch()被調用。我在listView中包含了onTouch,而不是所有的列表項。 – DominicM