Melaksanakan Pengepala dan Pengaki dalam RecyclerView
Masalah:
Menambahkan pengepala atau pengaki pada RecyclerView boleh menjadi satu cabaran. Kod yang disediakan mencadangkan menambah paparan pada LinearLayoutManager menggunakan addView(View view, int position), tetapi pendekatan ini tidak berjaya dan menghasilkan NullPointerException.
Penyelesaian:
Menambah Pengaki
Untuk menambah pengaki pada RecyclerView, ikuti langkah berikut:
Contoh Penyesuai Pengaki:
public class FooterViewHolder extends RecyclerView.ViewHolder { public FooterViewHolder(View itemView) { super(itemView); } } public class RecyclerViewWithFooterAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private static final int FOOTER_VIEW = 1; private List<String> data; @Override public int getItemCount() { return data == null ? 0 : data.size() + 1; } @Override public int getItemViewType(int position) { return position == data.size() ? FOOTER_VIEW : super.getItemViewType(position); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View v; if (viewType == FOOTER_VIEW) { v = LayoutInflater.from(context).inflate(R.layout.list_item_footer, parent, false); return new FooterViewHolder(v); } v = LayoutInflater.from(context).inflate(R.layout.list_item_normal, parent, false); return new NormalViewHolder(v); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (holder instanceof FooterViewHolder) { FooterViewHolder vh = (FooterViewHolder) holder; } else { NormalViewHolder vh = (NormalViewHolder) holder; vh.bindView(position); } } }
Menambah a Pengepala
Menambah pengepala pada RecyclerView mengikut proses yang serupa:
Nota Tambahan:
Atas ialah kandungan terperinci Bagaimanakah anda menambah pengepala dan pengaki pada RecyclerView tanpa mendapat NullPointerException?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!