RecyclerViewAdapter
には2つのアイテムタイプがあります。 1つのheaderViewに対してArrayList
およびHeaderViewHolder
のすべてのitemViewsについてItemViewHolder
ArrayList
からアイテムを削除してからnotifyItemRemoved(position)
を使用して、RecyclerView
からitemViewを削除することができます。しかし、ArrayList
に関連付けられていないheaderViewを削除するにはどうすればよいですか?以下はRecyclerViewからリストに関連付けられていないビューを削除します
はRecyclerViewAdapter
からいくつかのコードです:
private static final int TYPE_HEADER = 0;
private static final int TYPE_ITEM = 1;
private List<Offer> mValues;
OfferListAdapter(List<String> items) {
mValues = items;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if (viewType == TYPE_ITEM) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.itemView, parent, false);
return new ItemViewHolder(v);
} else if (viewType == TYPE_HEADER) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.headerView, parent, false);
return new HeaderViewHolder(v);
}
return null;
}
@Override
public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {
if (holder instanceof ItemViewHolder) {
ItemViewHolder userViewHolder = (ItemViewHolder) holder;
} else if (holder instanceof HeaderViewHolder) {
HeaderViewHolder headerViewHolder= (HeaderViewHolder) holder;
}
}
@Override
public int getItemViewType(int position) {
if (isPositionHeader(position))
return TYPE_HEADER;
return TYPE_ITEM;
}
private boolean isPositionHeader(int position) {
return position == 0;
}
private Offer getItem(int position) {
return mValues.get(position - 1);
}
@Override
public int getItemCount() {
return mValues.size() + 1;
}
あなたはもう一度私の日を作りました – Mike