首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >horizontalscrollview - onScroll?

horizontalscrollview - onScroll?
EN

Stack Overflow用户
提问于 2013-07-23 16:18:24
回答 1查看 3.9K关注 0票数 2

我在水平滚动视图上设置了一个"OnTouchListener“。我不能设置onScrollListener。这在水平滚动视图中是不可能的吗?

这不起作用:

代码语言:javascript
复制
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    // TODO Auto-generated method stub
    Log.i("Scrolling", "X from ["+oldl+"] to ["+l+"]");
    super.onScrollChanged(l, t, oldl, oldt);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-23 16:32:01

您当前的代码片段不会起作用,因为它没有告诉任何其他对象滚动已经改变-它只是触发onScrollChanged()的超级版本。不过,您应该可以获得日志条目。

要侦听滚动更改,您需要使用自己的侦听器接口扩展ScrollView。类似这样的东西:

代码语言:javascript
复制
public class MyScrollView extends ScrollView{
    public interface MyScrollViewListener{
        public abstract void onScrollChanged(int l, int t, int oldl, int oldt);
    }

    MyScrollViewListener mMyScrollViewListener; 

    public void setMyScrollViewListener(MyScrollViewListenerlistener){
        mMyScrollViewListener = listener;
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        super.onScrollChanged(l, t, oldl, oldt);

        if(mMyScrollViewListener != null){
            mMyScrollViewListener.onScrollChanged(l, t, oldl, oldt);
        }
    }
}

然后,您可以使用此滚动视图来代替当前的滚动视图。确保在您想要监听滚动更改的任何地方实现接口MyScrollViewListener,并使用setMyScrollViewListener函数设置它。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17804885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档