Heim >Java >javaLernprogramm >Wie fügt man einer RecyclerView eine Kopf- und Fußzeile hinzu, ohne eine NullPointerException zu erhalten?
Kopf- und Fußzeilen in RecyclerView implementieren
Problem:
Hinzufügen einer Kopf- oder Fußzeile zu Ein RecyclerView kann eine Herausforderung sein. Der bereitgestellte Code schlägt vor, mithilfe von addView(View view, int position) eine Ansicht zum LinearLayoutManager hinzuzufügen. Dieser Ansatz war jedoch nicht erfolgreich und führte zu einer NullPointerException.
Lösung:
Hinzufügen einer Fußzeile
Um einer RecyclerView eine Fußzeile hinzuzufügen, befolgen Sie diese Schritte:
Beispiel für einen Fußzeilenadapter:
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); } } }
Hinzufügen eines Headers
Das Hinzufügen eines Headers zu einer RecyclerView folgt a ähnlicher Prozess:
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie fügt man einer RecyclerView eine Kopf- und Fußzeile hinzu, ohne eine NullPointerException zu erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!