RecyclerView にヘッダーとフッターを追加すると、追加の情報や機能が提供され、ユーザー エクスペリエンスが向上します。 Android サポート ライブラリはこのためのメソッドをネイティブに提供していませんが、それを実現する実証済みの手法があります。
ヘッダーの追加:
フッターの追加:
グリッド レイアウトとリニア レイアウトの両方のサポート:
GridLayoutManager と LinearLayoutManager の両方を処理するには、getItemViewType(int) をオーバーライドし、ヘッダーに異なるビュー タイプを返します。 、フッター、コンテンツ項目。 RecyclerView.Adapter#getItemCount() を使用して、ヘッダーとフッターの両方をカウントに含めます。
実装例:
import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.List; public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> { private static final int VIEW_TYPE_HEADER = 0; private static final int VIEW_TYPE_FOOTER = 1; private static final int VIEW_TYPE_CONTENT = 2; private List<String>listData; private View headerView; private View footerView; public MyRecyclerViewAdapter(List<String>listData, View headerView, View footerView) { this.listData = listData; this.headerView = headerView; this.footerView = footerView; } @Override public int getItemViewType(int position) { if (position == 0) { return VIEW_TYPE_HEADER; } else if (position == getItemCount() - 1) { return VIEW_TYPE_FOOTER; } else { return VIEW_TYPE_CONTENT; } } @Override public MyRecyclerViewAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch(viewType) { case VIEW_TYPE_HEADER: return new ViewHolder(headerView); case VIEW_TYPE_FOOTER: return new ViewHolder(footerView); default: return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.content_item, parent, false)); } } @Override public void onBindViewHolder(MyRecyclerViewAdapter.ViewHolder holder, int position) { if (holder.getItemViewType() == VIEW_TYPE_CONTENT) { // Bind content item logic } } @Override public int getItemCount() { return listData.size() + 2; } public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(View itemView) { super(itemView); } } }
これらの手法を利用すると、効果的に次のことができます。ヘッダーとフッターの両方を RecyclerView に追加して、ユーザー エクスペリエンスを向上させ、さまざまなレイアウト マネージャーに対応します。
以上がAndroid RecyclerViews でヘッダーとフッターを効果的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。