一. FragmentLayout 加上 TabLayout 进行嵌套碎片
原创 2017年11月18日 16:52:22 标签:TabLayout 60
一 . 首先把FragmentLayout 碎片 框架搭建好(调用 TableLayout 横向滑动的时候不要忘记导入 依赖)
二 . 然后在想要的第一个FragmentLayout 碎片中建 XML
利用ViewPager
例如:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:id="@+id/my_table"
app:tabGravity="center"
app:tabIndicatorColor="@color/colorAccent"
app:tabMode="scrollable"
app:tabSelectedTextColor="@color/colorPrimaryDark"
app:tabTextColor="@color/colorPrimary"
></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp"></android.support.v4.view.ViewPager>
二、在fragment里
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("职业路径");
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 {
@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;
}
@Override
public int getCount() {
return tas.size();
}
public MyAdapter(FragmentManager fm) {
super(fm);
}
}
}