Android: вызвано OnViewCreated, но фрагмент не виден

Итак, я снова продолжаю работать над своим динамическим пользовательским интерфейсом, и кажется, что я почти достиг точки, где должен прийти эффект успеха. Но теперь мои шаги стали меньше, и я медленно двигаюсь к рубежу.

Мы все еще говорим о полностью динамически создаваемом пользовательском интерфейсе, основанном на фрагменте менеджера и фрагментах, которые сами по себе заполнены некоторыми подэлементами, такими как текстовые представления, кнопки, столбцы таблицы, что угодно.

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

Конструктор контроллера получает ссылку на активность фрагмента, переданную в качестве аргумента, чтобы создать FragmentManager и хранить его глобально.

Контроллер создает объект пользовательского класса, который является производным от фрагмента.

Перегруженный конструктор вызывается правильно, вызывая базовый ctor и делая другие вещи.

Затем я добавляю объект в диспетчер фрагментов, который был создан в ctor контроллера с помощью пройденного действия, начиная транзакцию и фиксируя ее.

Контроллер оставлен, поток возвращается к mainacctivity, где я выдаю setcontentview в конце.

Тем не менее, onCreateView выполняется, oViewCreated выполняется, где я определяю макет моего и фоновый цвет и одну кнопку тестирования. Затем я аккуратно помещаю все вещи в интерфейс. Как было проверено с производным фрагментом в классе контроллера, это сработало. Но сейчас в более-менее реальной ситуации я не вижу фрагмента. После коммита в cotroller я также выдаю detach и прикрепляю снова для принудительного перерисовывания.

Полагаю, где-то мне придется пройти атомные ссылки. Это могло быть возможно?

THX заранее.

Редактировать: Решено.

Удалить это?

1 ответ

Я отвечаю на свой вопрос (возможно, у кого-то еще были подобные проблемы) и хотел бы знать, подходит ли мой подход:

переопределенный обработчик событий onCreateView просто должен возвращать новый View(getActivity());

Другие вопросы по тегам