在fragment中使用ViewPager实现轮播图效果能够实现自动轮播在轮播过程中底部指示器跟着滑动点击指示器实现viewpager滑动
ViewPager轮播图组件随处可见了,viewpager可以实现左右滑动,viewpager实现fragment切换是目前大部分app所需要使用的技术。常见的轮播图和引导页使用viewpager完成,能够实现自动轮播
/**
* 实现底部切换:viewpager+fragment切换
1.容器:listview----》viewpager
2.适配器:baseAdapter-----》FragmentPagerAdapter
3.数据源:List<实体类>----》List<Fragment>
*/
public class MainActivity extends AppCompatActivity {
private ViewPager viewPager;
private MyPagerAdapter myPagerAdapter;
private List<Fragment> list;
private RadioGroup radioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
radioGroup = findViewById(R.id.group);
viewPager = findViewById(R.id.view_pager);
list = new ArrayList<>();
list.add(new OneFragment());
list.add(new TwoFragment());
list.add(new ThreeFragment());
myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager(),list);
viewPager.setAdapter(myPagerAdapter);
//点击底部切换fragment
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.rb1:
viewPager.setCurrentItem(0);
break;
case R.id.rb2:
viewPager.setCurrentItem(1);
break;
case R.id.rb3:
viewPager.setCurrentItem(2);
break;
}
}
});
//滑动viewpager底部切换
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position){
case 0:
radioGroup.check(R.id.rb1);
break;
case 1:
radioGroup.check(R.id.rb2);
break;
case 2:
radioGroup.check(R.id.rb3);
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
}