gpt4 book ai didi

android - 如何防止 RecyclerView 移动项目?

转载 作者:搜寻专家 更新时间:2023-11-01 08:45:11 25 4
gpt4 key购买 nike

我正在尝试实现一个布局,它基本上是相同大小的项目的网格。

项目是有序的,上面有日期,就像日历一样,所以你可以理解为什么我不能每次滚动时都随机排序。

我的问题是:有没有办法防止这种行为,还是我应该坚持使用旧的 GridLayout?

我问这个也是因为我最初认为新的 RecyclerView 只是用于随机排序的项目,例如新闻文章或帖子。这可以解释控制其行为的困难。

然而,经过一些阅读和网络搜索后,在我看来,如果我错了请纠正我,RecyclerView 是 ListView、GridLayout 和其他一些由其 LayoutManagers 实现的升级版本。

有人可以帮我解决这个问题吗?

谢谢!

编辑:这是我的适配器:

public class CardAssenzeAdapter extends RecyclerView.Adapter<CardAssenzeAdapter.AssenzeViewHolder> {

private List<Assenza> list;
Context c;

public CardAssenzeAdapter(Context c, List<Assenza> list) {
this.c = c;
this.list=list;
}

@Override
public int getItemCount() {
return list.size();
}

@Override
public void onBindViewHolder(AssenzeViewHolder NewsViewHolder, int i) {

Assenza n = list.get(i);
AssenzeViewHolder.month.setText(n.getMeseS());
AssenzeViewHolder.day.setText(n.getGiornoS());
if (n.isRitardo()) AssenzeViewHolder.hour.setText(n.getTipoR());
}

@Override
public AssenzeViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View itemView = LayoutInflater.
from(viewGroup.getContext()).
inflate(R.layout.card, viewGroup, false);

return new AssenzeViewHolder(itemView);
}

public static class AssenzeViewHolder extends RecyclerView.ViewHolder {
protected static TextView month;
protected static TextView day;
protected static TextView hour;

public AssenzeViewHolder(View v) {
super(v);
month = (TextView) v.findViewById(R.id.meseA);
day = (TextView) v.findViewById(R.id.giornoA);
hour = (TextView) v.findViewById(R.id.oraR);
}
}

}

最佳答案

RecyclerView 与随机排序的元素无关。它的目的更像是更有效地使用资源。这是来自 Android 开发者页面的引述,

"The RecyclerView widget is a more advanced and flexible version of ListView. This widget is a container for displaying large data sets that can be scrolled very efficiently by maintaining a limited number of views. Use the RecyclerView widget when you have data collections whose elements change at runtime based on user action or network events."

关于您的项目的顺序,这完全与您提供给 RecyclerView 的数据集有关。因此,如果您的数据集未按日期等排序,那么您需要做的是对数据集进行排序,然后将它们附加到 RecyclerView。

HERE你可以看看它的实现。

关于android - 如何防止 RecyclerView 移动项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com