【问题标题】:How to put swipe tab views inside one of navigation drawer option如何将滑动选项卡视图放在导航抽屉选项之一中
【发布时间】:2014-11-27 11:04:23
【问题描述】:

更新代码:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_home, container, false);
    viewPager = (ViewPager)view.findViewById(R.id.base_pager);
    FragmentManager manager = getChildFragmentManager();
    viewPager.setAdapter(new MyFragmentPagerAdapter(manager));  
    return rootView;
}




class HomeFragment extends FragmentPagerAdapter {

    public HomeFragment(FragmentManager fm) {
        super(fm);
        // TODO Auto-generated constructor stub
    }

    @Override
    public android.support.v4.app.Fragment getItem(int item) {
        // TODO Auto-generated method stub
        android.support.v4.app.Fragment fragment = null;
        if (item == 0) {
            //MapFragment.message("Map");
            fragment = new MapFragment();
        } else if (item == 1) {
            //SavedLocationsFragment.message("locations");
            fragment = new MapFragment();
        } /*else if (item == 2) {
        fragment = new FragmentC();
    }*/
        return fragment;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 2;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        // TODO Auto-generated method stub
        String title = new String();
        if (position == 0) {
            title = "Map";
        } else if (position == 1) {
            title = "savedLocations";
        }
        return title;
    }

}

我在这个 onCreateView 方法上遇到错误;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_home, container, false);
    viewPager = (ViewPager)view.findViewById(R.id.base_pager);
    FragmentManager manager = getChildFragmentManager();
    viewPager.setAdapter(new MyFragmentPagerAdapter(manager));  
    return rootView;
}

错误是;

  • 此位置不允许使用注释 @Override
  • 标记“视图”的语法错误,@预期
  • 标记“LayoutInflater”的语法错误,= 应在此标记之后
  • 标记“ViewGroup”上的语法错误,= 应在此标记之后
  • 标记“Bundle”的语法错误,= 应在此标记之后

【问题讨论】:

  • 好吧,我已经在我的一个应用程序中完成了这项工作,您可以 dex2jar 我的应用程序并获取代码。您所要做的就是在您的导航抽屉中打开任何片段,作为下一个滑动标签的基础
  • 我的主要活动类中有我的抽屉的代码,所以在我调用我的家庭片段的这个类中,我是否编写滑动标签的代码?
  • 不,你不需要,从导航抽屉中,你将打开一个空片段,它将充当你想要显示的滑动标签的宿主,:) 这将使你的代码易于阅读和跟进
  • 我完全糊涂了,你能给我举个例子吗?我对android还很陌生,不知道所有的语法。
  • play.google.com/store/apps/details?id=pk.nimgade.newyorksubway 看看这个,我相信我已经完成了你想要的,告诉我你是否可以 dex2jar,这将帮助你获得我的代码,如果你不能让我知道

标签: android android-fragments tabs navigation


【解决方案1】:

在你的家庭片段中这样做

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    View view = inflater.inflate(R.layout.fragment_activity, container, false);
    viewPager = (ViewPager)view.findViewById(R.id.base_pager);
    FragmentManager manager = getChildFragmentManager();
    viewPager.setAdapter(new MyFragmentPagerAdapter(manager));      
    return view;
}




class MyFragmentPagerAdapter extends FragmentPagerAdapter {

public MyFragmentPagerAdapter(FragmentManager fm) {
    super(fm);
    // TODO Auto-generated constructor stub
}

@Override
public android.support.v4.app.Fragment getItem(int item) {
    // TODO Auto-generated method stub
    android.support.v4.app.Fragment fragment = null;
    if (item == 0) {

        fragment = new PhotoCommnFragment();
    } else if (item == 1) {

        fragment = new ShowRestaurant();
    } /*else if (item == 2) {
        fragment = new FragmentC();
    }*/
    return fragment;
}

@Override
public int getCount() {
    // TODO Auto-generated method stub
    return 2;
}

@Override
public CharSequence getPageTitle(int position) {
    // TODO Auto-generated method stub
    String title = new String();
    if (position == 0) {
        title = "Map";
    } else if (position == 1) {
        title = "Restaurant";
    } else if (position == 2) {
        title = "Table 2";
    }
    return title;
}

}

现在你可以把你的孩子称为家的片段,就像这样

你的 mainActivity 是母亲,那么你的家庭片段是你的 mainActivity 的孩子。 并在您的家庭片段中托管餐厅和地图片段。 请检查你的dex2jar,如果你不能,我会邮寄给你相关代码

【讨论】:

  • 我收到的错误很少,我会用我在 atm 收到的错误更新我的帖子
  • @Android,把你的邮箱给我,我会把整个项目发给你
  • jsmithk95@outlook.com
  • 我收到了电子邮件,但没有附加项目
  • 您是否在办公室访问它,如果是,那么您在获取该附件时可能会遇到问题。我可以看到附件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多