//这是所有控件
mVp = (ViewPager) findViewById(R.id.vp);
mRb1 = (RadioButton) findViewById(R.id.rb1);
mRb2 = (RadioButton) findViewById(R.id.rb2);
mRb3 = (RadioButton) findViewById(R.id.rb3);
mRb4 = (RadioButton) findViewById(R.id.rb4);
mRb5 = (RadioButton) findViewById(R.id.rb5);
mRg = (RadioGroup) findViewById(R.id.rg);
1.我们需要创建一个类继承FragmentPagerAdapter
private class fpa extends FragmentPagerAdapter{
//自己创建一个Fragment数组
private ArrayList<Fragment> fragments;
public fpa(@NonNull FragmentManager fm, ArrayList<Fragment> fragments) {
super(fm);
//让Fragment对应显示
this.fragments = fragments;
}
/*
@ position 代表当前页面页数 从0开始
*/
@NonNull
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
//设置滑动页面页数
@Override
public int getCount() {
return fragments.size();
}
}
2.创建几个Fragment,并添加到Fragment数组里去,成功后是可以滑动了的。
ArrayList<Fragment> fragments = new ArrayList<>();
fragments.add(new Fragment_1());
fragments.add(new Fragment_2());
fragments.add(new Fragment_3());
fragments.add(new Fragment_4());
fragments.add(new Fragment_5());
//通过第一步我们可以看到需要一个FragmentManager,get它,第二个参数是我们添加的,是一个Fragment数组,我们已经创建好了
fpa fpa = new fpa(getSupportFragmentManager(),fragments);
//mvp是ViewPager控件
mVp.setAdapter(fpa);
3.设置对应改变颜色 在drawable中添加一个文件 在到xml控件下添加到背景颜色。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//checked 代表选中的意思 drawable 代表你对应的颜色
<item android:state_checked="true" android:drawable="@color/colorPrimaryDark"/>
<item android:state_checked="false" android:drawable="@color/colorAccent"/>
</selector>
//我的创建的文件名为colorsselect
android:background="@drawable/colorsselect"
4设置RadioGroup的点击改变页面事件
//直接设置RadioGroup的点击事件
mRg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
/*
@checkedId 代表你选中的按钮
*/
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
//当你选中的为rb1(名字自己取)就是第一个RadioButton,ViewPager就滑动到第一个界面
case R.id.rb1:
mVp.setCurrentItem(0);
break;
case R.id.rb2:
mVp.setCurrentItem(1);
break;
case R.id.rb3:
mVp.setCurrentItem(2);
break;
case R.id.rb4:
mVp.setCurrentItem(3);
break;
case R.id.rb5:
mVp.setCurrentItem(4);
break;
}
}
});
5.滑动页面改变按钮
//设置ViewPager的点击事件
mVp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
@Override
//只需要用到这个方法 @position代表为当前界面
public void onPageSelected(int position) {
switch (position){
//当前界面是第一个的时候,就是第一个按钮被选中 用switch记得break
case 0:
mRb1.setChecked(true);
break;
case 1:
mRb2.setChecked(true);
break;
case 2:
mRb3.setChecked(true);
break;
case 3:
mRb4.setChecked(true);
break;
case 4:
mRb5.setChecked(true);
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {}
});