Я смотрю на демонстрационный код, который показывает, как использовать адаптер фрагмента (в данном случае адаптер вкладки). Мне любопытно, что именно делает метод instantiate()
. Я вижу, что он используется в следующем демонстрационном коде на этой странице:
http://developer.android.com/reference/android/support/v4/view/ViewPager.html
(см. метод getItem()
в классе TabsAdapter
)
Если я правильно читаю демо-код, каждый раз, когда пользователь нажимает на одну из вкладок, создается новый фрагмент? И таким образом фрагмент снова начинает весь жизненный цикл (onAttach()
...onCreate()
... и т.д.)? Это звучит ужасно неэффективно. Я бы подумал, что фрагмент, который будет представлять содержимое для каждой вкладки, должен быть создан только один раз (возможно, в методе addTab()
), а затем сохранен в какой-то коллекции, откуда его можно будет получить при вызове getItem()
.
Пожалуйста, поправьте меня, если я ошибаюсь в чем-либо из этого. Я пытаюсь лучше понять, как управлять фрагментами.