Menambahkan pengepala dan pengaki pada RecyclerView boleh meningkatkan pengalaman pengguna dengan menyediakan maklumat atau fungsi tambahan. Walaupun perpustakaan sokongan Android tidak menyediakan kaedah asli untuk ini, terdapat teknik yang terbukti untuk mencapainya.
Menambah Pengepala:
Menambah Pengaki:
Menyokong Kedua-dua Reka Letak Grid dan Linear:
Untuk mengendalikan kedua-dua GridLayoutManager dan LinearLayoutManager, ganti getItemViewType(int) dan kembalikan jenis paparan berbeza untuk item pengepala, pengaki dan kandungan anda. Gunakan RecyclerView.Adapter#getItemCount() untuk memasukkan kedua-dua pengepala dan pengaki dalam kiraan.
Contoh Pelaksanaan:
import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.List; public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> { private static final int VIEW_TYPE_HEADER = 0; private static final int VIEW_TYPE_FOOTER = 1; private static final int VIEW_TYPE_CONTENT = 2; private List<String>listData; private View headerView; private View footerView; public MyRecyclerViewAdapter(List<String>listData, View headerView, View footerView) { this.listData = listData; this.headerView = headerView; this.footerView = footerView; } @Override public int getItemViewType(int position) { if (position == 0) { return VIEW_TYPE_HEADER; } else if (position == getItemCount() - 1) { return VIEW_TYPE_FOOTER; } else { return VIEW_TYPE_CONTENT; } } @Override public MyRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch(viewType) { case VIEW_TYPE_HEADER: return new ViewHolder(headerView); case VIEW_TYPE_FOOTER: return new ViewHolder(footerView); default: return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.content_item, parent, false)); } } @Override public void onBindViewHolder(MyRecyclerViewAdapter.ViewHolder holder, int position) { if (holder.getItemViewType() == VIEW_TYPE_CONTENT) { // Bind content item logic } } @Override public int getItemCount() { return listData.size() + 2; } public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); } } }
Dengan menggunakan teknik ini, anda boleh dengan berkesan tambahkan kedua-dua pengepala dan pengaki pada RecyclerView anda, mempertingkatkan pengalaman pengguna dan menampung pelbagai pengurus reka letak.
Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan pengepala dan pengaki dengan berkesan dalam Android RecyclerViews?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!