android 从末端交错网格布局管理器堆栈

bf1o4zei  于 2023-01-28  发布在  Android
关注(0)|答案(4)|浏览(146)

我正在尝试使用RecyclerView制作一个在列表中显示数据的应用程序,在LinearLayoutManager中有一个选项可以设置从末尾堆叠和反向布局,允许我在列表顶部显示最新数据。有没有办法可以在交错网格布局中的位置0(顶部)显示最新数据?

oyt4ldly

oyt4ldly1#

StaggeredGridLayoutManager具有方法setReverseLayout。
像这样使用它:

mLayoutManager = new StaggeredGridLayoutManager(getActivity());
mLayoutManager.setReverseLayout(true);
ffdz8vbo

ffdz8vbo2#

可以使用GridLayoutManagaer。在构造函数中,可以传递true/false以反转布局,也可以使用setReverseLayout(boolean)方法。检查this

ttygqcqt

ttygqcqt3#

您可以在更新(插入)数据后滚动到末尾(需要时)

private void updateData(@NonNull List<Item> items, boolean moveToTheEnd) {
    adapter.updateItems(items);

    if(moveToTheEnd) {
        recyclerView.scrollToPosition(adapter.getItemCount() - 1);
    }
}
lkaoscv7

lkaoscv74#

对我有效的解决方案是在适配器中的onBindViewHolder方法的开头添加以下行,而不是在开头添加这些空格:
position = getItemCount()-1-position;
所以你的代码应该是这样的:

@Override
public void onBindViewHolder(@NonNull MyAdapter.ViewHolder holder, int position) {

    position = getItemCount()-1-position;

    holder.textView.setText(mObjects.get(position).getText());
}

相关问题