【发布时间】:2012-08-23 09:48:02
【问题描述】:
有信息表明,在许多来源(如 Mark Murphy 的“The Busy Coders Guide for Android Developers”)或 SO 上的 this 等帖子中,不可能在 Fragment 中使用 ViewPager。我很困惑,因为我没有这样的问题,并且我在Fragment 中成功使用了ViewPager。唯一的区别是我不是在onCreateView() 方法中而是在onActivityCreated() 中实例化ViewPager。一切正常。
所以问题是 - 可能我只是不知道一些事情,并且出于某种原因不建议在 onActivityCreated() 中进行 UI 实例化?但同样 - 一切正常。
这是类和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>
【问题讨论】:
标签: android android-fragments android-viewpager commonsware