说一下注意事项:你的布局需要用到viewparger 和 tabLayout 控件这两个控件要写全路径名
看图片中Tablayout的参数 设置选中 非选中 下划线颜色.
如果网络获取图片加权限 <uses-permission android:name="android.permission.INTERNET’>
展示一下布局文件
布局文件下面的小圆点是ImageView 当你点开你的APP时候 展示的当然是第一张所以第一个ImageView要与其它不同代表选中状态
JAVA代码部分
public class Main31Activity extends AppCompatActivity {
TabLayout tabLayout;
ViewPager viewPager;
ArrayList arrayList1 = new ArrayList<>();
ArrayList arrayListframent = new ArrayList<>();
ImageView iv13;
ImageView iv14;
ImageView iv15;
ImageView iv16;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main31);
viewPager = findViewById(R.id.d14vp);
tabLayout = findViewById(R.id.d14tb);
tabLayout.setupWithViewPager(viewPager);
iv13 = findViewById(R.id.iv13);
iv14 = findViewById(R.id.iv14);
iv15 = findViewById(R.id.iv15);
iv16 = findViewById(R.id.iv16);
arrayList1.add("第一页");
arrayList1.add("第二页");
arrayList1.add("第三页");
arrayList1.add("第四页");
d14Fragment1 d14Fragment1 = new d14Fragment1();
d14Fragment2 d14Fragment2 = new d14Fragment2();
d14Fragment3 d14Fragment3 = new d14Fragment3();
d14Fragment4 d14Fragment4 = new d14Fragment4();
arrayListframent.add(d14Fragment1);
arrayListframent.add(d14Fragment2);
arrayListframent.add(d14Fragment3);
arrayListframent.add(d14Fragment4);
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
if (i==0){
iv13.setImageResource(R.mipmap.hongqiu);
iv14.setImageResource(R.mipmap.lvqiu);
iv15.setImageResource(R.mipmap.lvqiu);
iv16.setImageResource(R.mipmap.lvqiu);
}else if(i==1){
iv13.setImageResource(R.mipmap.lvqiu);
iv14.setImageResource(R.mipmap.hongqiu);
iv15.setImageResource(R.mipmap.lvqiu);
iv16.setImageResource(R.mipmap.lvqiu);
}else if(i==2){
iv13.setImageResource(R.mipmap.lvqiu);
iv14.setImageResource(R.mipmap.lvqiu);
iv15.setImageResource(R.mipmap.hongqiu);
iv16.setImageResource(R.mipmap.lvqiu);
}else if(i==3){
iv13.setImageResource(R.mipmap.lvqiu);
iv14.setImageResource(R.mipmap.lvqiu);
iv15.setImageResource(R.mipmap.lvqiu);
iv16.setImageResource(R.mipmap.hongqiu);
}
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
M31Adapter m31Adapter = new M31Adapter(getSupportFragmentManager(), arrayList1, arrayListframent);
viewPager.setAdapter(m31Adapter);
}
}
适配器代码
当你适配器继承FragmentPargerAdapter的时候会自动重写两个方法 getTitle是需要手动重写的 这个也是为了显示你的TitlePage
public class M31Adapter extends FragmentPagerAdapter {
ArrayList<String> arrayList1;
ArrayList<Fragment> arrayListframent;
public M31Adapter(FragmentManager fm, ArrayList<String> arrayList1, ArrayList<Fragment> arrayListframent) {
super(fm);
this.arrayList1 = arrayList1;
this.arrayListframent = arrayListframent;
}
@Override
public Fragment getItem(int i) {
return arrayListframent.get(i);
}
@Override
public int getCount() {
return arrayListframent.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return arrayList1.get(position);
}
}
最后看一下我们的实现效果吧