繁体   English   中英

Android:ScrollView'setOnScrollListener'(如ListView)

[英]Android: ScrollView 'setOnScrollListener' (like ListView)

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

谢谢,Erik

这就是我最终要知道用户是否与我的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;
    }
});

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

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

您可以使用此链接获取所需内容。

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

https://github.com/sephiroth74/Horizo​​ntalVariableListView

它基于原始的ListView,并且运行良好。

它有OnScrollListener,即使该网站说它支持Android 2.3及更高版本,我认为它应该适用于API 7及更高版本(并且有些调整甚至更旧)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM