Eug*_*ene 37 android android-fragments commonsware android-viewpager
有信息,这是不可能使用ViewPager内Fragment像"许多来源的忙打码机指南Android开发 "由马克·墨菲,或职位像这样的SO.我很困惑,因为我没有这样的问题而且我成功地使用了ViewPager我的内容Fragment.唯一的区别是我实例化了一个ViewPagernot in onCreateView()方法而不是in onActivityCreated().一切都很好.
所以问题是 - 可能是我只是不知道某些事情,并且出于某些原因不推荐这样做以进行UI实例化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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
小智 70
要在片段中实现View寻呼机,请使用getChildFragmentManager()而不是getFragmentManager().您可以从onCreateView()或onActivityCreated()调用ViewPager的setAdapter (),这不是问题.
我希望这能帮到你们.
Com*_*are 62
更新:由于这个答案最初编写,你现在可以有嵌套的片段,这意味着可以有一个ViewPager页面的使用片段,并在片段本身.该示例项目演示了该技术.
我现在回复你定期安排的答案,完整呈现......
从书中引用自己的话:
使用ViewPager的最简单方法是根据用户滑动将页面片段放入和放出屏幕.这仅在ViewPager本身未包含在片段中时才有效,因为您不能将片段嵌套在其他片段中.
目前不支持嵌套片段.试图将片段放在另一个片段的UI中将导致未定义且可能破坏的行为.
这是完全可能把一个ViewPager内部的Fragment,只要内容的的ViewPager 本身不包含片段.由于PagerAdapterAndroid支持包提供的具体实现使用片段,因此您必须滚动自己的无片段PagerAdapter以将ViewPager片段放入片段中.
我将努力在本书的下一版中更清楚地说明这一点(除非你是英国人,在这种情况下,我会努力使这一点更清楚:-).