Android触摸事件传播

时间:2015-02-25 19:04:14

标签: android listview android-fragments android-viewpager

我的理解是Android事件传播从父节点传到子节点,也就是说,它从最外面的元素开始,然后从那里开始。我的问题是,为什么当我尝试垂直滚动一个包含在scrollview上的viewpager内的listview时,listview会移动,而不是viewpager。 好的,让我重新说一下: 我正在尝试创建一个菜单,当用户拉下视图寻呼机时,该菜单会让我更清楚:

滚动型    我的自定义菜单    ViewPager(有三个片段,所有片段都有lisview)       ListView

我明白我想要做的事情有点奇怪,但这次只是和我一起。 :)

我可以做什么来暂时“禁用”滚动列表视图。

由于

1 个答案:

答案 0 :(得分:3)

似乎你必须覆盖滚动事件。一个好的网页是Disable scrolling in Android ListView。 主要看dispatchTouchEvent。它的片段:

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    final int actionMasked = ev.getActionMasked() & MotionEvent.ACTION_MASK;
    if (actionMasked == MotionEvent.ACTION_MOVE) {
        // Ignore move events
        return true;
    }

我个人希望它比禁用滚动方法简单。