Menyesuaikan RecyclerView dengan Pengepala dan Pengaki
Apabila bekerja dengan RecyclerView, keperluan untuk memaparkan pengepala dan pengaki sering timbul. Ini meningkatkan pengalaman pengguna dengan menyediakan maklumat tambahan atau elemen navigasi.
Menambah Pengepala
Untuk menambah pengepala, kembangkan reka letak tersuai dan hantarkannya kepada LayoutManager menggunakan kaedah addView(). Sebagai contoh, dalam coretan kod yang disediakan, baris berikut menambah pengepala:
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); headerPlaceHolder = inflater.inflate(R.layout.view_header_holder_medium, null, false); layouManager.addView(headerPlaceHolder, 0);
Walau bagaimanapun, untuk ini berfungsi, LayoutManager mesti mempunyai kaedah addView() yang mengambil dua argumen: pandangan untuk menambah dan kedudukannya dalam RecyclerView. Oleh itu, pendekatan ini menganggap anda mempunyai LayoutManager tersuai yang menyokong penambahan pengepala.
Menambah Pengaki
Pendekatan serupa boleh digunakan untuk menambah pengaki. Walau bagaimanapun, daripada menggunakan addView(), anda boleh menggunakan addFooterView() atau mencipta penyesuai tersuai yang mengendalikan pengaki dan item biasa.
Menggunakan Penyesuai Tersuai
Penyelesaian alternatif ialah mencipta penyesuai tersuai yang mengendalikan kedua-dua pengepala dan pengaki. Penyesuai kemudiannya boleh mengembalikan bilangan item yang betul, termasuk pengepala dan pengaki, dan mengembang pandangan pengepala dan pengaki dalam kaedah onCreateViewHolder(). Contoh pelaksanaan:
// Define a constant for the footer view type private static final int FOOTER_VIEW = 1; // Override the onCreateViewHolder() method @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == FOOTER_VIEW) { // Inflate the footer view View footerView = LayoutInflater.from(context).inflate(R.layout.list_item_footer, parent, false); return new FooterViewHolder(footerView); } else { // Inflate the normal view View normalView = LayoutInflater.from(context).inflate(R.layout.list_item_normal, parent, false); return new NormalViewHolder(normalView); } } // Override the getItemViewType() method @Override public int getItemViewType(int position) { if (position == data.size()) { // Return the FOOTER_VIEW type for the footer return FOOTER_VIEW; } return super.getItemViewType(position); }
Menyokong Berbilang Pengepala dan Pengaki
Pendekatan yang diterangkan di atas boleh disesuaikan untuk menyokong berbilang pengepala dan pengaki. Anda hanya perlu mengubah suai penyesuai atau LayoutManager tersuai untuk mengendalikan pengepala dan pengaki tambahan.
Mengendalikan GridLayoutManager
Untuk menyokong GridLayoutManager, anda boleh menggunakan GridLayoutManager.SpanSizeLookup untuk menentukan bilangan rentang yang perlu diduduki oleh setiap item. Contohnya:
// Create a SpanSizeLookup GridLayoutManager.SpanSizeLookup spanSizeLookup = new GridLayoutManager.SpanSizeLookup() { @Override public int getSpanSize(int position) { // Return 1 for normal items, and the number of columns for the footer if (position == data.size()) { return gridLayoutManager.getSpanCount(); } return 1; } }; // Set the SpanSizeLookup to the GridLayoutManager gridLayoutManager.setSpanSizeLookup(spanSizeLookup);
Pendekatan ini akan memastikan pengaki menempati keseluruhan lebar RecyclerView.
Atas ialah kandungan terperinci Bagaimana untuk menambah Pengepala dan Pengaki pada RecyclerView?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!