Android:将手势事件传递给另一个视图

19

我正在继续开发我的 Sticky ListView,它可以使 ListView 中指定的视图在滚动时保持在页面顶部和/或底部。我通过设置与列表项相同的 View,并在列表项进出屏幕时显示或隐藏它来实现此目的。

我的问题是,当这些“粘性”项存在时,我希望它们对触摸作出反应,就像它们是列表本身的一部分一样。例如,对顶部粘性项进行向下快速滑动应该使列表向下滚动。

我的问题是,是否有可能为这个 View 分配一个 TouchListener,然后直接将这些事件传递给列表?

我希望它会像这样简单:

ListView list;

....

stickyview.setOnTouchListener(new OnTouchListener() {


        @Override
        public boolean onTouch(View arg0, MotionEvent motionEvent) {
            list.onTouchEvent(motionEvent);
            return false;
        }

    });
2个回答

27

我进行了一些微调,现在搞定了:

stickyView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return list.onTouchEvent(event);
        }
    });

1

在我的情况下,我必须使用dispatchTouchEvent(MotionEvent event)来实现这个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接