Добавлены элементы в recyclerView, которые не отображаются до тех пор, пока пользователь не прокрутит. Я использую веб-сокеты для связи. Когда пользователь на сервере отправляет сообщение, сервер возвращает json, который я анализирую для модели, и я добавляю его в адаптер recyclerview. Элемент добавлен в recyclerview, но он не отображается, пока я не прокручиваю recyclerview вверх или вниз. Я сделал тест, в котором я добавил статическую строку с тестовым Json, и когда я нажму на кнопку, он вызовет тот же метод, но с тестовыми данными вне веб-сокета, и он добавит элемент поверх recyclerview.
Добавленные элементы с помощью этого метода не отображаются до тех пор, пока пользователь не прокрутит:
WebSocket ws = factory.createSocket("wss://example.com/websocket");
ws.addListener(new WebSocketAdapter() {
@Override
public void onTextMessage(WebSocket websocket, String text) throws Exception {
adapter.add(parseWs(text);
}
});
private Discussion parseWs(String string) {
discussion = new JSONObject(string).getJSONObject("data").toString();
Gson gson = new Gson();
return gson.fromJson(discussion, Discussion.class);
}
////////////Adapter class////////////
public void add(Discussion disc) {
list.add(0,disc);
notifyItemInserted(0);
}
Если я добавляю элемент при нажатии на кнопку, элементы отображаются нормально без прокрутки:
fab.setOnClickListener(v ->
adapter.add(parseWs(test));
mRecyclerView.scrollToPosition(0);
);
Я использую java-библиотеку nv-weboskcet-client.