RecyclerView でのヘッダーとフッターの実装
問題:
へのヘッダーまたはフッターの追加RecyclerView は難しい場合があります。提供されているコードでは、addView(View view, int Position) を使用して LinearLayoutManager にビューを追加することを提案していますが、このアプローチは成功せず、NullPointerException が発生しました。
解決策:
フッターを追加する
フッターを追加するにはフッターを RecyclerView に追加するには、次の手順に従います。
フッターの例アダプター:
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); } } }
ヘッダーの追加
RecyclerView へのヘッダーの追加は、同様のプロセスに従います:
追加注:
以上がNullPointerException を取得せずに、RecyclerView にヘッダーとフッターを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。