Когда вы вызываете setAdapter
, это не сразу выкладывает и позиционирует элементы на экране (который принимает один проход макета), поэтому ваш вызов scrollToPosition()
не имеет фактических элементов для прокрутки, когда вы его вызываете.
Вместо этого вы должны зарегистрировать ViewTreeObserver.OnGlobalLayoutListener (через addOnGlobalLayoutListner () из ViewTreeObserver
, созданного conversationView.getViewTreeObserver()
), который задерживает ваш scrollToPosition()
пока после первого прохода макета:
conversationView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
public void onGlobalLayout() {
conversationView.scrollToPosition(GENERIC_MESSAGE_LIST.size();
// Unregister the listener to only call scrollToPosition once
conversationView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
// Use vto.removeOnGlobalLayoutListener(this) on API16+ devices as
// removeGlobalOnLayoutListener is deprecated.
// They do the same thing, just a rename so your choice.
}
});
Вы упускаете таблицу стилей из реакции-начальной загрузки, поэтому модель не получает должного стиля. Добавьте следующее в ваш HTML, и оно должно работать.
<link
rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"
integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS"
crossorigin="anonymous"
/>
Перейдите по ссылке , чтобы интегрировать ваше приложение и использовать его с реакции-начальной загрузкой.