我对无限的“Time Picker Carousel”使用了Scrollview,发现这不是最好的方法(last question)

现在,我找到了Recycler View,但是我无法获得recyclerView 的X方向上的当前滚动偏移量? (假设每个项目的宽度为100px,第二个项目的可见度仅为50%,因此滚动偏移为150px)

  • 所有项目的宽度均相同,但是在第一个项目之后,最后一个项目之后ozt_rli有一定的距离
  • recyclerView.getScrollX()返回0(文档说:初始滚动值)
  • LayoutManager具有findFirstVisibleItemPosition,但是我无法使用该
  • 计算X偏移量

    更新

    我只是找到了一种方法来跟踪X位置,同时使用onScrolled回调更新值,但是我宁愿获取实际值,而不是一直跟踪它!
    private int overallXScroll = 0;
    //...
    mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
    
                overallXScroll = overallXScroll + dx;
    
                Log.i("check","overallXScroll->" + overallXScroll);
    
            }
        });
    

    最佳答案

    RecyclerView已经具有获取水平和垂直滚动偏移量的方法

    mRecyclerView.computeHorizontalScrollOffset()
    mRecyclerView.computeVerticalScrollOffset()
    

    这对于包含相同高度(用于垂直滚动偏移)和相同宽度(用于水平滚动偏移)的单元格的RecyclerViews将起作用

    关于android - Android:如何获取RecyclerView的当前X偏移量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27507715/

    10-12 00:11
    查看更多