Есть фрагмент. В нём с сервера в методе onViewCreated()
подгружаю историю сообщений между 2-мя пользователями
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//....
new Thread(()-> {
try {
Observable.fromArray(api.getMessages("sender", "recipient"))
.subscribeOn(Schedulers.newThread())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(message -> {
addMessage(message);
});
} catch (Exception ex) {
Toast.makeText(view.getContext(), "Упс! Что-то пошло не так!", Toast.LENGTH_LONG).show();
ex.printStackTrace();
}
}).start();
}
Проблема:
При старте фрагмента, сообщения полученные с сервера не отображаются, при том, что запрос на сервер уже был сделан и был получен ответ. Выглядит это так:
Но как только я дотрагиваюсь именно до EditText (Ваше сообщение)
Мои сообщения тут же появляются. Выглядит это так:
Как можно исправить, чтобы сообщения показывались при старте фрагмента?
Попробуйте тогда программно открыть клавиатуру по завершению работы обсервера.
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnComplete(() -> {
showInputMethod();
})
.subscribe(message -> {
addMessage(message);
});
public void showInputMethod() {
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,InputMethodManager.HIDE_IMPLICIT_ONLY);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу упросить код, так как в нём повторяются элементыПомогите это сделать
Пытаюсь добится того, чтобы дочерний элемент нарисовал рамку с небольшим отступом от края окна, но получить размер окна в случае когда он задается...
Необходимо распределить работу на n часовВыполнять работу необходимо пачками