如何在按钮单击时移动到recyclerview中的下一个对象

时间:2018-06-06 15:53:01

标签: android android-recyclerview

我想在点击按钮时转到recyclerview中的下一个对象。我尝试使用scrollToPosition,但我无法弄清楚如何获得对象的当前位置。如果我在那里放了一个数字然后它可以工作,但它只会跳到那个位置。

我用来滚动的代码

layoutManager.scrollToPosition(2);

2 个答案:

答案 0 :(得分:1)

LinearLayoutManager - 类似findLastCompletelyVisibleItemPosition()的方法,检查AdapterItems的大小并滚动到下一个(如果是findLast< adapter.itemsSize,则为+1)。非常简单的逻辑。

LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);

按钮点击的逻辑:

btnClick.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        if (layoutManager.findLastCompletelyVisibleItemPosition() < (adapter.getItemCount() - 1)) {
            layoutManager.scrollToPosition(layoutManager.findLastCompletelyVisibleItemPosition() + 1);
        }

    }
});

在扩展的RecyclerView适配器中,你应该有这样的东西:

@Override
public int getItemCount() {
    return yourData != null ? yourData.length() : 0;
}

答案 1 :(得分:0)

ViewHolder有一个getAdapterPosition函数返回其位置