Android. Java. Adapter. Fragment

204
11 апреля 2017, 09:10

Есть фрагмент. В нём с сервера в методе 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 (Ваше сообщение) Мои сообщения тут же появляются. Выглядит это так:

Как можно исправить, чтобы сообщения показывались при старте фрагмента?

Answer 1

Попробуйте тогда программно открыть клавиатуру по завершению работы обсервера.

.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);
}
READ ALSO
Java - Как объединить методы работающие с Activity

Java - Как объединить методы работающие с Activity

Хочу упросить код, так как в нём повторяются элементыПомогите это сделать

229
Получение ширины и высоты для JLabel

Получение ширины и высоты для JLabel

Пытаюсь добится того, чтобы дочерний элемент нарисовал рамку с небольшим отступом от края окна, но получить размер окна в случае когда он задается...

229
Установка фокуса на EditText. requestFocus не работает

Установка фокуса на EditText. requestFocus не работает

В xml у editText есть эти 2 атрибута:

318
Выполение 1 000 000 мелких заданий. Java

Выполение 1 000 000 мелких заданий. Java

Необходимо распределить работу на n часовВыполнять работу необходимо пачками

203