Android getTargetFragment().getView() возвращает нуль

#android

#Android

Вопрос:

У меня проблема с изменениями ориентации и сохраненным фрагментом.

В сохраненном фрагменте в onActivityCreated() я использую getTargetFragment().getView().find...

Иногда метод возвращает значение null. Я не знаю почему. Я использую библиотеку совместимости v.4.

Ответ №1:

Я знаю, что уже поздно, но я наткнулся на это, и, оказывается, есть обходной путь. По моему опыту, при работе с фрагментами и переключении между ними методы onCreate срабатывают слишком быстро, поэтому иногда макет инициализируется не полностью. Работа, которую я использовал, запускает задачу таймера, чтобы выполнить вызов немного позже вызова onCreate . Задержка, кажется, всегда дает ему достаточно времени. У меня есть свой собственный одноэлементный таймер, и вам нужно будет создать свой собственный таймер для планирования задач, но вы поняли идею. Надеюсь, это поможет.

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    final QueueFragmentTab thisFrag = this;

    TimerHelper.getInstance().scheduleTask(new TimerTask() {
        @Override
        public void run() {
             //getview goes here
            Log.w(tag, ""   thisFrag.getView());

        }
    }, 100);
    return inflater.inflate(R.layout.fragment_queue, container, false);

}
 

Комментарии:

1. Я даже позже, но я думаю, что ваша проблема в том, что вы пытаетесь получить представление перед раздуванием макета.