您的位置:首页 > 其它

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

2017-11-18 16:58 288 查看
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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  TabLayout