如何在单击按钮时移动到回收视图中的下一个对象

J D*_*DEO 3 android android-recyclerview

单击按钮时,我想移动到 recyclerview 中的下一个对象。我尝试使用 scrollToPosition 但我不知道如何获得对象的当前位置。如果我在那里放一个数字,那么它就可以工作,但它只会跳到那个位置。

我用来滚动的代码

layoutManager.scrollToPosition(2);
Run Code Online (Sandbox Code Playgroud)

jan*_*sky 12

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

LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

点击按钮的逻辑:

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

    }
});
Run Code Online (Sandbox Code Playgroud)

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

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