为了账号安全,请及时绑定邮箱和手机立即绑定

我可以为ScrollView使用onScrollListener吗?

我可以为ScrollView使用onScrollListener吗?

红颜莎娜 2019-07-26 16:28:09
我可以为ScrollView使用onScrollListener吗?我HorizontalScrollView在布局中使用a ,我需要确定用户已达到滚动的起点和终点。因为ListView我已经尝试过了onScrollListener,可以找到滚动的起点和终点。我尝试在我做同样的事情,Scrollview但似乎不可能。有没有其他可能的方法来实现我的需要。
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

每个View调用实例getViewTreeObserver()。现在,当持有实例时ViewTreeObserver,您可以OnScrollChangedListener()使用该方法添加一个实例addOnScrollChangedListener()

您可以在此处查看有关此课程的更多信息。

它可以让您了解每个滚动事件 - 但没有坐标。您可以通过使用getScrollY()getScrollX()从侦听器中获取它们。

scrollView.getViewTreeObserver().addOnScrollChangedListener(new OnScrollChangedListener() {
    @Override
    public void onScrollChanged() {
        int scrollY = rootScrollView.getScrollY(); // For ScrollView
        int scrollX = rootScrollView.getScrollX(); // For HorizontalScrollView
        // DO SOMETHING WITH THE SCROLL COORDINATES
    }});


查看完整回答
反对 回复 2019-07-26
?
智慧大石

TA贡献1946条经验 获得超3个赞

这可能非常有用。用NestedScrollView而不是ScrollView。支持库23.1引入了一个OnScrollChangeListenerNestedScrollView。所以你可以做这样的事情。

 myScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
        @Override
        public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
            Log.d("ScrollView","scrollX_"+scrollX+"_scrollY_"+scrollY+"_oldScrollX_"+oldScrollX+"_oldScrollY_"+oldScrollY);
            //Do something
        }
    });


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 719 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信