我在ExpandableListView的組視圖(節標題)中有一個ViewPager。正如所料,ViewPager的滾動有時會變得不連貫,很可能是因爲ExpandableListView試圖攔截觸摸事件。作爲解決方案,我試圖阻止ExpandableListView攔截觸摸事件,如果它們是爲ViewPager的。所以,這就是我所做的。如何停止ExpandableListView竊取兒童觸摸事件?
private void fixViewPager(ViewPager vp) {
vp.setOnTouchListener(new ViewPager.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
Logger.log("Disabling event stealing");
v.getParent().requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
Logger.log("Enabling event stealing");
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
// Handle ListView touch events.
v.onTouchEvent(event);
return true;
}
});
}
但是,觸摸偵聽器永遠不會收到ACTION_DOWN事件。它似乎只能得到ACTION_UP事件。我能做些什麼來解決我的問題?謝謝!