Как использовать фрагменты Android? - PullRequest
1 голос
/ 04 февраля 2012

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

http://developer.android.com/reference/android/support/v4/view/ViewPager.html

(см. Метод getItem() в классе TabsAdapter)

Если я правильно читаю демонстрационный код, каждый раз, когда пользователь нажимает на одну из вкладок, создается новый фрагмент? И, таким образом, фрагмент снова начинает весь жизненный цикл (onAttach() ... onCreate() ... и т. Д.)? Это звучит ужасно неэффективно. Я думаю, что фрагмент, который будет представлять содержимое для каждой вкладки, должен создаваться только один раз (возможно, в методе addTab()), а затем сохраняться в некоторой коллекции, где его можно получить при вызове getItem().

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

Ответы [ 2 ]

0 голосов
/ 05 февраля 2012

Мне удалось найти объяснение моего вопроса здесь

0 голосов
/ 04 февраля 2012

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

Но, если у вас есть сомнения, вы можете прочитать источник:)

Надеюсь, это поможет, David

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...