2
私はrecyclerviewとアダプタを持っている:最後のリストアイテムをアンドロイドで他の人と違う方法は?
public class PaymentMethodAdapter extends RecyclerView.Adapter<PaymentMethodAdapter.ViewHolder> {
private List<PaymentMethod> mPaymentMethods = new ArrayList<>(0);
public PaymentMethodAdapter(List<PaymentMethod> paymentMethods) {
mPaymentMethods = paymentMethods;
int size = mPaymentMethods.size();
mPaymentMethods.add(size + 1, null);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_payment_method_list, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if (mPaymentMethods.get(position) == null) { // Last item
// Display add payment method item.
}
}
@Override
public int getItemCount() {
return mPaymentMethods.size();
}
static class ViewHolder extends RecyclerView.ViewHolder {
@Bind(R.id.item_payment_method_image_view) ImageView paymentImageView;
@Bind(R.id.item_payment_method_card_number_text_view) TextView cardNumberTextView;
@Bind(R.id.item_current_payment_method_image_view) ImageView currentMethodImageView;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.bind(this, itemView);
}
}
}
私はmPaymentMethods
内の最後の要素に達したときに別のリスト項目のレイアウトが使用されるように、それを作りたいです。基本的には、リストの最後の項目をカスタマイズしたいと思います。
リスト内の最後のアイテムをカスタマイズするには、同じリスト内の他のアイテムと異なるレイアウトを使用しますか?
ありがとうございます。
を使用ビュータイプ
に従ってviewholder開始します。 3つのビューホルダークラスが必要ですか? @UğurB –
2つのレイアウトに2つのクラスは必要ありません。最初に、実装した最初のビュータイプにViewHolderクラスを使用し、別のクラス(必要に応じて呼び出す必要があります)を作成し、2番目のビュータイプで拡張したレイアウトのビューアイテムを開始できます。 – uguboz