


Implémentation des en-têtes et des pieds de page dans RecyclerView
Problème :
Ajout d'un en-tête ou d'un pied de page à un RecyclerView peut être un défi. Le code fourni suggère d'ajouter une vue au LinearLayoutManager à l'aide de addView (View view, int position), mais cette approche n'a pas abouti et a entraîné une NullPointerException.
Solution :
Ajout d'un pied de page
Pour ajouter un pied de page à une RecyclerView, suivez ces étapes :
- Créez un ViewHolder pour la vue de pied de page.
- Remplacez onCreateViewHolder pour gonfler la vue du pied de page si nécessaire.
- Remplacez onBindViewHolder pour lier les données à la vue du pied de page.
- Remplacez getItemCount pour inclure le pied de page dans le décompte.
- Remplacez getItemViewType pour distinguer le pied de page des éléments de liste normaux.
Exemple d'adaptateur de pied de page :
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); } } }</string></recyclerview.viewholder>
Ajout d'un en-tête
L'ajout d'un en-tête à un RecyclerView suit un processus similaire :
- Créez un ViewHolder pour la vue d'en-tête.
- Remplacez onCreateViewHolder pour gonfler la vue d'en-tête si nécessaire.
- Ajoutez la vue d'en-tête à RecyclerView à l'aide de RecyclerView.addHeaderView (Vue d'affichage).
- Remplacez getItemCount pour inclure l'en-tête dans le décompte.
Supplémentaire Notes :
- Si vous avez besoin de plusieurs en-têtes et pieds de page, gérez-les de la même manière en ajustant les méthodes getItemViewType et getItemCount.
- Le référentiel GitHub fourni offre une implémentation complète de l'ajout des deux en-têtes et pieds de page.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Dreamweaver Mac
Outils de développement Web visuel