滚动停止的Recycler视图

时间:2016-12-10 11:04:34

标签: android android-recyclerview

基本上我希望我的recyclerview自动滚动到项目未显示一半的位置。就像googleplay中的那个。

我写了一段代码

public void scrollToVisible(){
    int firstVisibleItemPosition = ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
    View view = recyclerView.getLayoutManager().getChildAt(0);
    if (firstVisibleItemPosition > 0 && view != null) {
        int offsetTop = view.getTop();
        if (firstVisibleItemPosition - 1 >= 0 && adapter.getItemCount() > 0) {
            ((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(firstVisibleItemPosition - 1, offsetTop);
        }
    }
}

接下来是问题所在。我不知道在哪里放这个代码。当Recyclerview停止滚动时,我有一个模糊的想法,但我现在已经搜索了很长时间,我无法找到这样的方法。当我把它放在onScroll上时出现了一些意想不到的行为

2 个答案:

答案 0 :(得分:1)

您可以创建 CustomRecyclerView ,扩展 RecyclerView

public class CustomRecyclerView extends RecyclerView {
@Override
public void onScrollStateChanged(int state) {
    super.onScrollStateChanged(state);

    // check if scrolling has stopped
    if (state == SCROLL_STATE_IDLE) {
         LinearLayoutManager linearLayoutManager = (LinearLayoutManager) getLayoutManager();
         // use code here
    }
}

答案 1 :(得分:0)

如果对某人有任何帮助:

{{1}}