Есть информация, что невозможно использовать ViewPager
внутри Fragment
во многих источниках, таких как Руководство для занятых кодеров для разработчиков Android "Марк Мерфи, или сообщения, такие как this на SO. Я смущен, потому что у меня нет такой проблемы, и я успешно использую ViewPager
в моей Fragment
. Единственное отличие состоит в том, что я создаю экземпляр метода ViewPager
не в onCreateView()
, а в onActivityCreated()
. И все работает отлично.
Итак, вопрос в том, может быть, я просто ничего не знаю, и по какой-то причине не рекомендуется создавать экземпляры пользовательского интерфейса в onActivityCreated()
? Но опять же - все работает отлично.
Вот список классов и xml:
Класс:
public class ViewPagerFragment extends Fragment {
static final int NUM_ITEMS = 2;
private ViewPagerAdapter mAdapter;
private ViewPager mPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.view_pager_fragment, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mAdapter = new ViewPagerAdapter(getFragmentManager());
mPager = (ViewPager) getView().findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
}
public static class ViewPagerAdapter extends FragmentPagerAdapter {
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int num) {
if (num == 0) {
return new ItemsListFragment();
} else {
return new FavsListFragment();
}
}
@Override
public int getCount() {
return NUM_ITEMS;
}
}
}
Разметка:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>