HeaderやFooterで各々ViewHolderを作る必要もなかったので、それすらないシンプルなAdapterです。
github.com
// HeaderFooterAdapterを継承する class MovieAdapter extends HeaderFooterAdapter<ItemViewHolder> { private List<String> movies; private LayoutInflater layoutInflater; MovieAdapter(LayoutInflater layoutInflater) { this.layoutInflater = layoutInflater; } void setMovies(List<String> movies) { this.movies = movies; notifyDataSetChanged(); } // ItemのViewHolderを作成して返す @Override protected ItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) { return new ItemViewHolder( this.layoutInflater.inflate(R.layout.row_movie, parent, false)); } // ItemのViewHolderを利用する @Override protected void onBindItemViewHolder(ItemViewHolder holder, int position) { holder.setName(this.movies.get(position)); } // Itemの数を返す @Override protected int getAdapterItemCount() { return movies.size(); } } // ActivityなどでAdapterをセットする前にHeaderViewとFooterViewをセットする MovieAdapter adapter = new MovieAdapter(layoutInflater); adapter.setHeaderView(headerView); adapter.setFooterView(footerView); recyclerview.setAdapter(adapter);