二. FragmentLayout 加上 TabLayout 进行嵌套碎片 主方法内

来源:互联网 发布:知乎匿名回答在哪看 编辑:程序博客网 时间:2024/06/01 08:01
public class Fragment_shouye extends Fragment  {    private View view;    private TabLayout my_table;    private ViewPager viewPager;    //放进集合    private List<String> tas=new ArrayList<>();    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment_shouye, container, false);        initView(view);        return view;    }    @Override    public void onActivityCreated(@Nullable Bundle savedInstanceState) {        super.onActivityCreated(savedInstanceState);        tas.add("推荐");        tas.add("课程");        tas.add("实战");        tas.add("职业路径");                //设置适配器  注意:getChildFragmentManager        viewPager.setAdapter(new MyAdapter(getChildFragmentManager()));        //建立关联        my_table.setupWithViewPager(viewPager);        //一次加载所有的页面        viewPager.setOffscreenPageLimit(tas.size());    }//获得控件    private void initView(View view) {        my_table = (TabLayout) view.findViewById(R.id.my_table);        viewPager = (ViewPager) view.findViewById(R.id.vp);    }//    写一个适配器    class MyAdapter extends FragmentPagerAdapter {        //得到页面的title,会添加到tabLayout控件上        @Override        public CharSequence getPageTitle(int position) {            return tas.get(position);        }        @Override        public Fragment getItem(int position) {            Fragment f=null;//            进行判断            switch (position){                case 0:                    f=new Table_Fragment_tuijian();                    break;                case 1:                    f=new Table_Fragment_kecheng();                    break;                case 2:                    f=new Table_Fragment_shizhan();                    break;                case 3:                    f=new Table_Fragment_zhiye();                    break;            }            return f;        }        //view的页数        @Override        public int getCount() {            return tas.size();        }        public MyAdapter(FragmentManager fm) {            super(fm);        }    }}