你應該在onInterceptTouchEvent上工作。當你點擊horizontalScrollview時,你應該在onInterceptTouchEvent中返回false,否則返回true;
這裏,我怎麼沒
1)使CustomViewpager延長ViewPager 2)覆蓋onInterceptTouchEvent這樣
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (childId > 0) {
View scroll = findViewById(childId);
if (scroll != null) {
Rect rect = new Rect();
scroll.getHitRect(rect);
if (rect.contains((int) event.getX(), (int) event.getY())) {
return false;
}
}
}
return true;
}
private int childId;
public void setChildId(int id) {
this.childId = id;
}
3)在XML中使用customViewpager代替viewpager這樣
<com.packagename.CustomViewpager .....
4)並從這樣的活動中設置childId
CustomViewpager cv=(CustomViewpager)findViewById(R.id.id_of_customviewpager);
cv.setChildId(R.id.id_of_customviewpager);
5)完成
邏輯是,當你觸摸HorizontalScrollview給摸至其他明智給予觸摸到父
這類作品的孩子。如果垂直滾動,則孩子的命中率不會改變。對流離失所兒童的原始位置進行尋呼手勢不會被攔截。 –
@ chrish,停止viewpager刷卡,在我的情況ViewPager頁面包含ScrollView裏面,我有2個HorizontalScrollView,現在下面這HorizontalScrollView viewpager刷卡不工作。任何可能的解 –