0

注意:我已经实施了使用ViewPager的选项卡。我正在创建一个在viewpager中有三个选项卡(Fragments)的应用程序。我想创建一个导航抽屉,在那里我可以看到这三个选项卡,然后点击任何导航我可以导航到相应的选项卡。导航抽屉与查看传呼机与标签不工作

主要活动延伸ActionBarActivity和具有下面的代码

private class DrawerItemClickListener implements ListView.OnItemClickListener { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

Fragment fragment = new CategoryFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(CategoryFragment.CATEGORY_NUMBER, position); 
    fragment.setArguments(args); 

    FragmentTransaction transaction =  getSupportFragmentManager().beginTransaction(); 

    transaction.replace(R.id.pager, fragment); 
    transaction.addToBackStack(null); 
    transaction.commit(); 
    getSupportFragmentManager().executePendingTransactions(); 

    // update selected item and title, then close the drawer 
    mDrawerList.setItemChecked(position, true); 
    setTitle(mOptionsNavDrawer[position]); 
    mDrawerLayout.closeDrawer(mDrawerList); 

}

CategoryFragment看起来像这样

public static class CategoryFragment extends android.support.v4.app.Fragment { 
    public static final String CATEGORY_NUMBER = "category_number"; 

    public CategoryFragment() { 
     // Empty constructor required for fragment subclasses 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     int fragmentNumber = getArguments().getInt(CATEGORY_NUMBER); 
     View rootView=null; 
     if(fragmentNumber==0) 
     { 
      rootView = inflater.inflate(R.layout.F1, container, false); 
     } 
     else if (fragmentNumber==1) 
     { 
      rootView = inflater.inflate(R.layout.F2, container, false); 
     } 
     else if(fragmentNumber==2) 
     { 
      rootView = inflater.inflate(R.layout.F3, container, false); 
     } 
     else 
     { 
      rootView = inflater.inflate(R.layout.F4, container, false); 
     } 
     return rootView; 
    } 


} 

内CategoryFragment OnCreateView函数获取调用,但片段(F1,F2 F3)没有设置。有没有其他的方法来调用这些片段?每个片段都是相应的选项卡。

+0

可能重复[如何实现与Android的片段导航抽屉认为寻呼机标签?] (http://stackoverflow.com/questions/26117686/how-to-implement-the-view-pager-tabs-with-navigation-drawer-in-android-fragment) –

+0

没有人使用ViewPager –

回答

0

您需要在活动中有一个方法来帮助切换标签。喜欢的东西:

public void displayView(int position) { 

    // update the main content by replacing fragments 
    Fragment fragment = null; 
    switch (position) { 
     case 0: 
      fragment = new FragmentA();    
      break; 
     case 1: 
      fragment = new FragmentB(); 

      break; 
     case 2: 
      fragment = new FragmentC(); 

      break; 

     default: 
      break; 
    } 

    if (fragment != null) { 
     FragmentTransaction transaction = fragmentManager.beginTransaction(); 
     transaction.addToBackStack(null); 
     transaction.replace(R.id.frame_container, fragment); 
     transaction.commit(); 

每个片断应该是相互独立的,无需捆绑信息传递给CategoryFragment

+0

我删除按照您的建议分类片段和实施和displayView。之后,它也没有改变标签,只显示一个白页:( –

+0

@AnmolSrivastava你仍然有这个问题? –