1. 程式人生 > >android ViewPager中獲取Fragment

android ViewPager中獲取Fragment

值得記錄一下這個問題。

如果用adapter.getItem來獲取,是說不清楚的。我放在選單中執行的時候,竟然可以。放在其他位置的按鈕來獲取,就是重新new出來的。

網上查了下,正確方法如下:

ViewPager pager = (ViewPager)findViewById(R.id.viewpager);

FragmentStatePagerAdapter f = pager.getAdapter();

SomeFragment someFragment = (SomeFragment)f.instantiateItem(pager,position);

instantiateItem(pager,position)方法會返回在position位置的fragment的引用。如果該fragment 已經例項化了,再次呼叫instantiateItem(pager,position)的時候,該方法並不會呼叫getItem()來再次例項化fragment,而是直接返回引用。