【问题标题】:Android: ScrollView 'setOnScrollListener' (like ListView)Android:ScrollView 'setOnScrollListener'(如 ListView)
【发布时间】:2011-03-31 15:02:17
【问题描述】:

我想在用户向下滚动 >90% 时做一些事情,所以我想我可以像在 ListView 中一样添加一个 onScrollListener。不幸的是,ScrollView 似乎没有类似的方法。有什么办法可以做我想做的事吗?当用户向下滚动大约 90% 时收到通知?

谢谢, 埃里克

【问题讨论】:

    标签: android


    【解决方案1】:

    这就是我最终要知道用户是否与我的ScrollView 交互的方法:

    findViewById(R.id.scrollview).setOnTouchListener(new View.OnTouchListener() {
    
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
            case MotionEvent.ACTION_SCROLL:
            case MotionEvent.ACTION_MOVE:
                setScrollState(OnScrollListener.SCROLL_STATE_FLING);
                break;
            case MotionEvent.ACTION_DOWN:
                setScrollState(OnScrollListener.SCROLL_STATE_TOUCH_SCROLL);
                break;
            case MotionEvent.ACTION_CANCEL:
            case MotionEvent.ACTION_UP:
                setScrollState(OnScrollListener.SCROLL_STATE_IDLE);
                break;
            }
            return false;
        }
    });
    

    【讨论】:

      【解决方案2】:

      您可以尝试扩展 ScrollView 并覆盖 View#onScrollChanged 并在那里进行检查。您必须扩展 ScrollView,因为 onScrollChanged 是受保护的方法。

      【讨论】:

      • 新问题:如何获得滚动的全部内容的“高度”?我现在有当前位置,但我想知道滚动条有多“远”。 getHeight() 没有返回正确的值,可能是屏幕上的高度而不是内容的高度。
      • 在您放入 ScrollView 的子视图上使用 getHeight。 ScrollView 的工作原理基本上是告诉子视图尽可能大,然后充当它的视口。
      【解决方案3】:

      您可以实现 onTouchListener 并使用视图的 getScrollX 和 getScrollY 回调

      【讨论】:

        【解决方案4】:

        如果你想要一个像列表视图一样工作的滚动视图,我可以建议尝试一个水平列表视图库:

        https://github.com/sephiroth74/HorizontalVariableListView

        它基于原始的ListView,效果很好。

        它有它的 OnScrollListener ,即使网站说它支持 Android 2.3 及更高版本,我认为它应该在 API 7 及更高版本上工作(并且进行一些更旧的调整)。

        【讨论】:

          猜你喜欢
          • 2023-04-01
          • 2016-08-11
          • 2014-10-06
          • 1970-01-01
          • 2016-09-12
          • 2016-12-30
          • 1970-01-01
          • 2016-04-18
          • 2015-02-12
          相关资源
          最近更新 更多