что я делаю примерно так
https://imgur.com/mqiNBoP.jpg
Как вы можете видеть, есть 2 ресивера, расположенные рядом друг с другом, но это не главное
Главное это
https://imgur.com/DVbAlAa.jpg
Вы можете видеть, что есть 10 последовательностей, отображаемых в формате json (не вините, почему я показываю их в тексте, я ленивый)
Но в соответствующем обзоре утилизатора показаны только 9 из них, первые данные отсутствуют (данные слева)
Я думаю, что это должно быть проблемой моего getItemViewType, но я не могу понять, что не так
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private Context context;
private ArrayList<Train> train_datas;
public RecyclerViewAdapter(Context context, ArrayList<Train> train_datas) {
this.context = context;
this.train_datas = train_datas;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
if(viewType == 1) {
View view = layoutInflater.inflate(R.layout.train_header, parent,false);
return new ViewHolderHeader(view);
}
else {
View view = layoutInflater.inflate(R.layout.train_cards, parent,false);
return new ViewHolderContent(view);
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
Train train = train_datas.get(position);
if (holder.getItemViewType() == 1) {
ViewHolderHeader holderHeader = (ViewHolderHeader) holder;
holderHeader.tvStation.setText(Utils.getStationName(train.getStation()));
return;
}
else {
ViewHolderContent holderContent = (ViewHolderContent) holder;
// Some complicate mechenics here
return;
}
}
@Override
public int getItemCount() {
return train_datas.size();
}
@Override
public int getItemViewType(int position) {
int type = Integer.valueOf(train_datas.get(position).getSeq());
return type;
}
public class ViewHolderContent extends RecyclerView.ViewHolder {
public TextView tvSequence;
public TextView tvTime;
public TextView tvDest;
public ImageView platImg;
public TextView tvTtnt;
public CardView cardView;
public ViewHolderContent(View itemView) {
super(itemView);
tvSequence = itemView.findViewById(R.id.tvSequence);
tvTime = itemView.findViewById(R.id.tvTime);
tvDest = itemView.findViewById(R.id.tvDest);
platImg = itemView.findViewById(R.id.platImg);
tvTtnt = itemView.findViewById(R.id.tvTtnt);
cardView = itemView.findViewById(R.id.cardView);
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Toast.makeText(v.getContext(), "click " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
return false;
}
});
}
}
public class ViewHolderHeader extends RecyclerView.ViewHolder {
public TextView tvStation;
public ViewHolderHeader(View itemView) {
super(itemView);
tvStation = itemView.findViewById(R.id.tvStation);
}
}
}
Итак, о чем я спрашиваю, как добавить заголовок вместе со всеми (10 из них) моими данными?
Спасибо тебе большое
Редактировать: В настоящее время я понимаю, что я пытаюсь накачать заголовок xml при "getItemViewType () == 1", и я не могу показать первые данные, потому что они заняты заголовком xml, но Я до сих пор не знаю, как ее решить