У меня есть два разных arrayList в одном окне просмотра. Я успешно загрузил два содержимого Arraylist в одном обзоре утилит, но второй ArrayList отображается внизу первых элементов ArrayList. Это не то, что я хочу, я хочу показать данные второго Arraylist после успешного отображения некоторых данных из первого ArrayList. Например, после каждых 5 элементов из первого ArrayList добавьте один элемент из второго Arraylist. Так будет и дальше. Это что-то похожее на это, но второй Arraylist - это тот, который заменяет рекламу в imAGE ниже.
Я использовал это в своем классе адаптера. Где данные - это основной ArrayList, а promo_data - это ArrayList, который я хочу добавить в определенные позиции.
public int getItemViewType(int position) {
if (position < data.size() ) {
return VIEW_TYPE_MAIN;
}
if (position - promo_data.size() < data.size()) {
return VIEW_TYPE_PROMO;
}
return -1;
}```
``` @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(ctx).inflate(R.layout.main_content,parent, false);
if(viewType == VIEW_TYPE_MAIN){
return new MainViewHolder(view);
}
if(viewType == VIEW_TYPE_PROMO){
return new PromoViewHolder(view);
}
return null;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
if(viewHolder instanceof MainViewHolder){
((MainViewHolder) viewHolder).populatViews(data.get(i));
}
if(viewHolder instanceof PromoViewHolder){
((PromoViewHolder) viewHolder).populate(promo_data.get(i - data.size())));
}
}
@Override
public int getItemCount() {
return data.size() + promo_data.size();
} ```