3

我有一个ViewPager动态数字images。这ViewPager将作为自定义行添加到表视图中。由于此表视图可以有多个动态自定义行,因此我必须将此表视图添加到scrollview滚动中。

现在我的问题是,当我水平滚动到 View Pager 时,它不完全是水平滚动,它也与一些垂直滚动混合在一起。因此,当检测到垂直滚动时,会将事件传递给滚动视图;这使得ViewPager重置到初始位置。

那么如何将事件传回ViewPager或避免滚动视图捕获垂直滚动事件?

注意:我尝试禁用scrollview垂直滚动,但这并没有阻止它捕获垂直滚动事件。

4

1 回答 1

11

我找到了我的问题的解决方案,这就是我的做法。

我通过以下方式覆盖了我的 Viewpager 的 on touch 事件

myViewPager.setOnTouchListener(new OnTouchListener() {

                public boolean onTouch(View v, MotionEvent event) {

                    if(event.getAction() == MotionEvent.ACTION_MOVE && myScrollView!=null){
                        myScrollView.requestDisallowInterceptTouchEvent(true);
                    }
                    return false;
                }
            });

注意:myScrollView 是 myViewPager 的父级,如我的问题中所述。

于 2012-09-11T11:13:12.680 回答