Android:无法在viewpager中显示片段,其中viewpager位于片段内

时间:2014-11-25 08:31:05

标签: android android-viewpager fragmentpageradapter

在ViewPager中显示Fragment时遇到问题。

我有一个ViewPager,它托管在Fragment里面,这个Fragment在Activity里面。 此ViewPager具有pagerTabStrip。 ViewPager中的每个页面都是特殊用途的片段。

这是我使用PagerAdapter

设置viewpager的方法
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_pager_screen,
            container, false);

    ViewPager pager = (ViewPager) rootView.findViewById(R.id.vp_main); 
    pager.setAdapter(new MainTabAdapter(rootView.getContext(),getFragmentManager()));

    return rootView;
}

这很好,我可以看到寻呼机。在MainTabAdapter中,我有一个getItem,我选择不同的片段。

@Override
public Fragment getItem(int arg0) {
    // TODO Auto-generated method stub
    Log.w("ALBUM", types[arg0].toString());
    Fragment fragment = FragmentType.getFragment(types[arg0]);
    return fragment;
}

这也很好。我可以得到正确的片段。当显示不同页面的片段时,它们都没有显示。下面是我在片段之一的代码,以膨胀xml

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_local_screen,
            container, false);


    Bundle data = new Bundle();
    data.putStringArray("PROJECTION", new String [] { 
        MediaStore.Video.VideoColumns._ID,
        MediaStore.Video.VideoColumns.BUCKET_DISPLAY_NAME, 
        MediaStore.Video.VideoColumns.BUCKET_ID,
        MediaStore.Video.VideoColumns.DATE_TAKEN,
        MediaStore.Video.VideoColumns.DATE_ADDED,
        MediaStore.Video.VideoColumns.DESCRIPTION,
        MediaStore.Video.VideoColumns.DURATION});

    data.putString("SELECTION", null);
    data.putStringArray("SELECTIONARRAY", null);
    data.putString("SORTORDER", MediaStore.Video.VideoColumns.BUCKET_DISPLAY_NAME + " LIMIT " + mLimit);

    VideoCursorAdapter adapter = new VideoCursorAdapter(getActivity(),null,true);
    LocalVideos videos = new LocalVideos(getActivity(), adapter);
    getLoaderManager().initLoader(LocalVideos.LoaderID.THUMBNAIL.getID(), data, videos);

    ListView listView = (ListView)rootView.findViewById(R.id.listVideos);
    //listView.setAdapter(adapter);

    videos.setView(listView);
    return rootView;

如果我删除了viewpager,这是有效的。当我放置ViewPager代码时,此片段不会显示。

0 个答案:

没有答案