Привет, я создаю экран чата, в котором я группирую чаты по дате, например, WhatsApp, но для группировки данных мне нужно рендерить данные, поэтому я использовал setReverseLayout на моем приемнике и Коллекции .reverse (myChats) для обратного просмотра данных, а также setStackFromEnd , чтобы при поступлении нового сообщения оно оставалось в нижней части, но, к сожалению, при прокрутке чатов оно не переходило в нижнюю часть, а при новой - не прокручивалось в нижнюю часть. сообщение выскакивает. Может кто-нибудь сказать мне, что не так в моем коде
Мой код
//Init Varibles
ArrayList<Message> myChats = new ArrayList<Message>();
private RecyclerView recyclerView;
private RecyclerView.Adapter mAdapter;
private LinearLayoutManager layoutManager;
private Boolean isUpdate = false;
// OnCreate
recyclerView = (RecyclerView) findViewById(R.id.messages);
recyclerView.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
layoutManager.setReverseLayout(true);
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
mAdapter = new MessageAdoptor(myChats,getApplicationContext());
recyclerView.setAdapter(mAdapter);
// On Data Change
myChats.clear();
myChats.addAll(myChatsTemp);
Collections.reverse(myChats);
mAdapter.notifyDataSetChanged();
Решение
recyclerView.smoothScrollToPosition(0);