基本的に同じサイズのアイテムのグリッドであるレイアウトを実装しようとしています。
項目は順序付けられており、カレンダーのように日付が表示されているため、スクロールするたびにランダムに並べ替えることができない理由がわかります。
私の質問は次のとおりです。この動作を防ぐ方法はありますか、それとも古い GridLayout をそのまま使用する必要がありますか?
これは、新しい RecyclerView は、ニュース記事や投稿など、ランダムに並べ替えられたアイテムにのみ使用することを意図していると当初考えていたためです。それは、その行動を制御することの難しさを説明したでしょう.
ただし、いくつかの読書とWeb検索の後、RecyclerViewはListView、GridLayout、およびそのLayoutManagerによって実装されている他のいくつかのアップグレードバージョンであることが間違っている場合は修正してください。
誰かがこれで私を助けることができますか?
ありがとう!
編集:これは私のアダプターです:
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);
}
}
}