导航抽屉与查看传呼机与标签不工作
注意:我已经实施了使用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)没有设置。有没有其他的方法来调用这些片段?每个片段都是相应的选项卡。
您需要在活动中有一个方法来帮助切换标签。喜欢的东西:
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
我删除按照您的建议分类片段和实施和displayView。之后,它也没有改变标签,只显示一个白页:( –
@AnmolSrivastava你仍然有这个问题? –
可能重复[如何实现与Android的片段导航抽屉认为寻呼机标签?] (http://stackoverflow.com/questions/26117686/how-to-implement-the-view-pager-tabs-with-navigation-drawer-in-android-fragment) –
没有人使用ViewPager –