Maison >Java >javaDidacticiel >Comment ajouter un en-tête et un pied de page à un RecyclerView sans obtenir une NullPointerException ?
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 :
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); } } }
Ajout d'un en-tête
L'ajout d'un en-tête à un RecyclerView suit un processus similaire :
Supplémentaire Notes :
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!