ViewPager的效果:在fragment中使用ViewPager实现轮播图效果 能够实现自动轮播 在轮播过程中底部指示器跟着滑动 点击指示器实现viewpager滑动
ViewPage的用处:ViewPager轮播图组件随处可见了,viewpager可以实现左右滑动,viewpager实现fragment切换是目前大部分app所需要使用的技术。常见的轮播图和引导页使用viewpager完成,能够实现自动轮播。
ViewPage的步骤:准备Viewpager控件,准备数据源,自定义MyAdapter继承PagerAdapter,从写四个方法,设置适配器。
ViewPage的定义:是android中专门用来实现左右滑动切换view效果的系统控件
getCount():获取viewpager显示数据个数。
destroyitem():当前项屏幕时执行的方法。
instantiateitem():实例化数据集中的每一个数据
isViewFromObject():判断view和obj是否为同一个view
vp = findViewById(R.id.vp);//初始化控件
List<Fragment> fragments = new ArrayList<>();//准备数据源
BlankFragment1 blankFragment1 = new BlankFragment1();
BlankFragment2 blankFragment2 = new BlankFragment2();
BlankFragment3 blankFragment3 = new BlankFragment3();
fragments.add(blankFragment1);
fragments.add(blankFragment2);
fragments.add(blankFragment3);
MyFragmentAdapter myFragmentAdapter = new MyFragmentAdapter(getSupportFragmentManager(),fragments);//定义适配器
vp.setAdapter(myFragmentAdapter);//设置适配器
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
switch (i){
case R.id.bt1:
vp.setCurrentItem(0);
break;
case R.id.bt2:
vp.setCurrentItem(1);
break;
case R.id.bt3:
vp.setCurrentItem(2);
break;
}
}
});
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position){
case 0:
rg.check(R.id.bt1);
break;
case 1:
rg.check(R.id.bt2);
break;
case 2:
rg.check(R.id.bt3);
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
List<Integer> integers = new ArrayList<>();//准备数据源
integers.add(R.drawable.img1);
integers.add(R.drawable.img2);
integers.add(R.drawable.img3);
banner.setImages(integers);
banner.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
}).start();