没有调用Android onScrollChanged()

时间:2014-05-21 18:56:38

标签: android scrollview android-custom-view

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

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的空白区域拖动滚动视图时,它开始调用onScrollChanged,之后我开始从其他任何地方拖动,调用onScrollChanged。我的问题是,为什么它表现得那样?它应该从触摸事件开始的任何地方调用onScrollChanged。我希望,我很好地解释了我的观点。任何解决方案?

1 个答案:

答案 0 :(得分:1)

为什么不将endless adapter用于ListViewGridView之类的视图来实现所需的行为