干货 1 导依赖并且将依赖改成自己的版本 如果导过了可以忽略此步骤 :
‘
implementation 'com.android.support:design:26.1.0'
2: 布局 温馨提醒: TabLayout包不要导错
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".Fragments.BlankFragment2">
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tab"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/pager"></android.support.v4.view.ViewPager>
</LinearLayout>
3 在MainActivity中找你的定义的俩大控件并进行设置
tab.setupWithViewPager(pager);
上边方法解释此方法是设置咋们定义的字符跟Fragment进行同步也就是在我滑动的时候我的TabLayout也进行滑动
4: 定义适配器 就好比我们的ListView, ViewPager也是需要适配器的
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.ArrayList;
public class FragmentViewPagerAdapter extends FragmentPagerAdapter {
ArrayList<String>tit; // 此集合是我们定义的汉字和ViewPager结合使用的
ArrayList<Fragment>list; //存放Fragment
public FragmentViewPagerAdapter(FragmentManager fm, ArrayList<String> tit, ArrayList<Fragment> list) {
super(fm);
this.tit = tit;
this.list = list;
}//利用构造进行赋值
@Override
public Fragment getItem(int position) {
return list.get(position);
}//此方法返回的当前 Fragment 通过索引得到
@Override
public int getCount() {
return list.size();
}//返回 Fragment 个数
//重写getPageTitle 方法返回我们定义好的Stirng值
@Override
public CharSequence getPageTitle(int position) {
return tit.get(position) ;
}
}
定义好适配器接下来 就看适配器需要什么我们进行传什么就OK当然下边的逻辑代码我一并送上
当然 tit集合和 list集合的元素个数一定要相等;
ArrayList<String>tit=new ArrayList<>();
ArrayList<Fragment>list=new ArrayList<>();
tit.add("景");
tit.add("氏");
try {
list.add(BlankFragment3.class.newInstance());
list.add(BlankFragment4.class.newInstance());
} catch (java.lang.InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
FragmentViewPagerAdapter fragmentViewPagerAdapter = new FragmentViewPagerAdapter(getChildFragmentManager(), tit, list);
pager.setAdapter(fragmentViewPagerAdapter);
就这OK
效果图实在抱歉不知道为什么上传老是报错。