首先还是要导依赖包
compile 'com.android.support:design:26+'
然后在XML文件里,代码如下:
<android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tab" app:tabSelectedTextColor="@color/colorAccent"//这个表示标题默认滑动的颜色 ></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:id="@+id/vp" ></android.support.v4.view.ViewPager>在MainActivity的方法,代码如下:
String[] chaans={"关注", "热点", "推荐", "北京", "娱乐", "体育", "教育", "科技", "历史", "地理", "视频"}; private TabLayout tab; private ViewPager vp; List<Fragment> list=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tab = findViewById(R.id.tab); vp = findViewById(R.id.vp); getData(); //设置Viewpage适配器 MypageAdapter my=new MypageAdapter(getSupportFragmentManager()); vp.setAdapter(my); //让子tablayout和Viewpage相关联 tab.setupWithViewPager(vp); //设置显示的模式 tab.setTabMode(TabLayout.MODE_SCROLLABLE); } public void getData(){ for (int i = 0; i <chaans.length ; i++) { //给Tablayout设置标题 tab.addTab(tab.newTab().setText(chaans[i])); } for (int i = 0; i <chaans.length ; i++) { //实列化Fragment Frag1 f1=new Frag1(); Bundle bu=new Bundle(); bu.putString("table",chaans[i]); f1.setArguments(bu); ///保存fragment,作为vp的pager页 list.add(f1); } } class MypageAdapter extends FragmentPagerAdapter{ public MypageAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return list.get(position); } @Override public int getCount() { return list.size(); } @Override public CharSequence getPageTitle(int position) { return chaans[position]; } } 在Fragment里的方法:public class Frag1 extends Fragment { @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Bundle a = getArguments(); TextView te=new TextView(getActivity()); //给textView赋不同的值 te.setText(a.getString("table")); return te; } }