2014-08-27 5 views
0

Я хочу создать новый экземпляр фрагмента в PagerAdapter с помощью некоторого метода, например Fragment1.newInstance(0); , но это не входит в метод фрагмента onCreateView, где я хочу взять его макет ... Как могу ли я включить его в метод жизненного цикла?Фрагмент, как вводить метод жизненного цикла onCreateView

EDIT: для вкладок салфетки я использую внешнюю библиотеку, которая расширяет PagerAdapter, может быть, проблема?

+0

Создание экземпляра «Фрагмента» не означает, что он станет полностью функциональным. Он должен быть привязан к «Деятельности», после чего ОС полностью инициализирует его и вызывает различные методы жизненного цикла. Вы не можете (или, точнее, НЕ СЛЕДУЕТ * называть методы жизненного цикла «Фрагмент» напрямую). – Squonk

ответ

0

Все, что вам нужно, описано here. См. Раздел «Добавление фрагмента в действие», особенно для решения вашей проблемы.

0

в вашем пейджере класса адаптера возвращает экземпляр, как этот

@Override 
public Fragment getItem(int position){ 
return Fragment1.newInstance(position); 
} 

А в вашем фрагменте создать статический экземпляр, как этого

public static NearbyOffersFragment newInstance(int position) { 
    Fragment1 f = new Fragment1(); 
    Bundle b = new Bundle(); 
    b.putInt("position", position); 
    f.setArguments(b); 
    return f; 
} 

и OnCreate вашего фрагмента извлечения постиона

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    position = getArguments().getInt("position"); 
} 
+0

, который до сих пор не вводит метод onCreateView Fragment –

+0

, вы уверены, что его регистрируете и проверяете? – goonerDroid

+0

см. Мой отредактированный вопрос –

0

Это потому, что ViewPager не воссоздает фрагмент для каждого салфетки. Атес фрагмент только один раз и сохраняет в памяти и воссоздать сразу после того, как она идет offScreenpageLimit() ... Для воссоздания фрагмента каждый раз, когда вы проводите, вы должны установить

mViewPager.setOffscreenPageLimit(0); 

Но этот метод не рекомендуется, если у вас так много страниц в viewpager (по крайней мере, более 10).

Смежные вопросы