我正在开发一个具有滚动视图的android应用程序。我从ScrollView覆盖了我的视图,并实现了onScrollChanged方法。当滚动视图滚动并到达底部时,它将加载更多产品并将其添加到scrollvew。我有一个奇怪的问题。第一次加载产品并尝试向上拖动滚动视图时,onScrollChanged永远不会发生。然后我搜索了一下,发现了一些东西:

scrollView.setOnTouchListener(new ListView.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.
                v.getParent().requestDisallowInterceptTouchEvent(false);
                break;

            case MotionEvent.ACTION_UP:
                // Allow ScrollView to intercept touch events.
                v.getParent().requestDisallowInterceptTouchEvent(true);
                break;
            }

            // Handle ListView touch events.
            v.onTouchEvent(event);
            return true;
        }
    });


添加此内容后,当我尝试从scrollview的空白区域拖动scrollview时,它将开始调用onScrollChanged,然后再从其他任何地方拖动,则将调用onScrollChanged。我的问题是,为什么它表现得如此?无论触摸事件开始什么,它都应该调用onScrollChanged。希望我能很好地解释我的观点。有什么办法吗?

最佳答案

为什么不在ListViewGridView之类的视图中使用endless adapter来实现所需的行为

10-07 13:53