Я хотел бы, чтобы мой список загружал только 20 сообщений из моего списка массивов, а когда я прокручиваю до конца, загружаю еще 20, и так далее, и так далее.
Кстати, список заполняется снизупоследние сообщения представлены внизу 1-ым, и я бы хотел, чтобы это не изменилось.Загрузка старых и старых сообщений.
сейчас это код моего адаптера.
public class MensagemAdapter extends ArrayAdapter<Message> {
private Context context;
private List<Message> messages;
private List<Users> users;
public MensagemAdapter(@NonNull Context context, @NonNull List<Message> objects, @NonNull List<Users> users) {
super(context, 0, objects);
this.context=context;
this.messages = objects;
this.users = users;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view = null;
if (messages != null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
Message message = messages.get(position);
Log.d("Num", "getView: " +message.getUserId() + " " + message.getId());
if(message.getUserId()==1 ){
assert inflater != null;
view = inflater.inflate(R.layout.right_no_attach,parent,false);
TextView textoMensagem = view.findViewById(R.id.tv_mensage);
textoMensagem.setText(message.getContent());
if (message.getAttachments() !=null){
for(int i=0; i<message.getAttachments().size();i++){
//view = inflater.inflate(R.layout.right_attach,parent,false);
if (i==0){
ImageView attach = view.findViewById(R.id.imageView1);
attach.setVisibility(View.VISIBLE);
Picasso.get().load( message.getAttachments().get(i).getThumbnailUrl()).into(attach);
} else if (i==1){
ImageView attach = view.findViewById(R.id.imageView2);
attach.setVisibility(View.VISIBLE);
Picasso.get().load( message.getAttachments().get(i).getThumbnailUrl()).into(attach);
} else if(i==2){
ImageView attach = view.findViewById(R.id.imageView3);
attach.setVisibility(View.VISIBLE);
Picasso.get().load( message.getAttachments().get(i).getThumbnailUrl()).into(attach);
} else {
ImageView attach = view.findViewById(R.id.imageView3);
attach.setVisibility(View.VISIBLE);
Picasso.get().load( message.getAttachments().get(i).getThumbnailUrl()).into(attach);
}
}
}
}else{
assert inflater != null;
view = inflater.inflate(R.layout.left_no_attach,parent,false);
TextView nomeMensagem = view.findViewById(R.id.nomeId);
nomeMensagem.setText(users.get(message.getUserId()-1).getName());
ImageView avatar = view.findViewById(R.id.avatarIm);
Picasso.get().load(users.get(message.getUserId()-1).getAvatarId()).transform(new CircleTransform()).into(avatar);
TextView textoMensagem = view.findViewById(R.id.tv_mensage);
textoMensagem.setText(message.getContent());
if (message.getAttachments() !=null){
for(int i=0; i<message.getAttachments().size();i++){
//view = inflater.inflate(R.layout.right_attach,parent,false);
if (i==0){
ImageView attach = view.findViewById(R.id.imageViewA);
attach.setVisibility(View.VISIBLE);
Picasso.get().load( message.getAttachments().get(i).getThumbnailUrl()).into(attach);
} else if (i==1){
ImageView attach = view.findViewById(R.id.imageViewB);
attach.setVisibility(View.VISIBLE);
Picasso.get().load( message.getAttachments().get(i).getThumbnailUrl()).into(attach);
} else if(i==2){
ImageView attach = view.findViewById(R.id.imageViewC);
attach.setVisibility(View.VISIBLE);
Picasso.get().load( message.getAttachments().get(i).getThumbnailUrl()).into(attach);
} else {
ImageView attach = view.findViewById(R.id.imageViewD);
attach.setVisibility(View.VISIBLE);
Picasso.get().load( message.getAttachments().get(i).getThumbnailUrl()).into(attach);
}
}
}
}
if (message.getAttachments() ==null) {
TextView textoMensagem = view.findViewById(R.id.tv_mensage);
textoMensagem.setText(message.getContent());
}
}
return view;
}
}
мне немного тяжело из-за разных макетов.
Чтоя могу сделать, чтобы сделать это?
Спасибо: D