首先需要导入数据库Design库,分析实现思路:需要两个集合,一个标题的集合,一个Fragment集合
一:布局:TabLayout注意包名
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content" 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:id="@+id/view_pager" android:layout_below="@+id/tab_layout" android:layout_width="match_parent" android:layout_height="wrap_content"> </android.support.v4.view.ViewPager> </RelativeLayout> 二:MainActivity代码 1、初始化两个控件 2、创建标题的集合,添加数据List<String> listStr = new ArrayList(); listStr.add("美女"); listStr.add("段子"); listStr.add("社会"); listStr.add("汽车"); listStr.add("博客"); listStr.add("前端"); listStr.add("公司"); listStr.add("资讯"); listStr.add("视频"); listStr.add("文学"); 3、创建Fragment集合,然后通过Fragment把标题加进集合List<Fragment> listTv = new Arrlist<>();for (int i = 0; i < 10; i++) { //创建NewsFragment类继承Fragment
listTv.add(new NewsFragment(listStr.get(i))); }
4、设置适配器view_pager.setAdapter(new MyAdapter(getSupportFragmentManager())); //创建ViewPager的适配器(MyAdapter)5、联动class MyAdapter extends FragmentPagerAdapter {//继承FragmentPagerAdapter public MyAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return listTv.get(position); } @Override public int getCount() { return listTv.size(); } //此方法需要手动提示重写,设置当前标题 @Override public CharSequence getPageTitle(int position) { return listStr.get(position); } }tab_layout.setupWithViewPager(view_pager);