未调用Android onScrollChanged()

未调用Android onScrollChanged(),android,scrollview,android-custom-view,Android,Scrollview,Android Custom View,我正在开发一个具有滚动视图的android应用程序。我已经从ScrollView重写了我的视图,并实现了onScrollChanged方法。当scrollview滚动并到达底部时,它会加载更多的产品并将它们添加到scrollvew。我有一个奇怪的问题。当我第一次加载产品并尝试向上拖动scrollview时,onScrollChanged从未发生过。然后我在谷歌上搜索,发现了一些东西: scrollView.setOnTouchListener(new ListView.OnTouchListen

我正在开发一个具有滚动视图的android应用程序。我已经从ScrollView重写了我的视图,并实现了onScrollChanged方法。当scrollview滚动并到达底部时,它会加载更多的产品并将它们添加到scrollvew。我有一个奇怪的问题。当我第一次加载产品并尝试向上拖动scrollview时,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。我希望,我很好地解释了我的观点。有什么解决方案吗?

为什么不使用类似于
ListView
GridView
的视图来实现所需的行为呢?

首先,我有一些自定义UI要求,使用ListView或GridView无法满足。第二,无尽的适配器有非常高的开销,我不想在我的应用程序中添加。我正在寻找一些使用scrollview的解决方法。请查看此链接,朋友,请阅读我的问题。我不关心滚动何时开始或结束。我只是希望每当用户滚动时,它应该滚动用户点击或开始拖动的任何内容。所以你们禁用了按滚动并重新浏览它。为什么?我没有在任何时候禁用滚动。当第一次加载内容时,滚动不工作,除非我从空白区域开始滚动。空的意思是没有孩子。当我通过触摸任何一个孩子来滚动时,这不仅仅是第一次。滚动开始后,一切正常。您称之为RequestDisallowWinterCeptTouchEvent。