ViewPager:是android中专门用来实现左右滑动切换View效果的系统控件
// viewPager=findViewById(R.id.view);
// List<View> list=new ArrayList<>();
// ImageView imageView1=new ImageView(this);
// imageView1.setImageResource(R.drawable.next);
// ImageView imageView2=new ImageView(this);
// imageView2.setImageResource(R.drawable.pause);
// ImageView imageView3=new ImageView(this);
// imageView3.setImageResource(R.drawable.pre);
// list.add(imageView1);
// list.add(imageView2);
// list.add(imageView3);
// MyPagerAdapter myPagerAdapter=new MyPagerAdapter(list);
// viewPager.setAdapter(myPagerAdapter);
ViewPager翻页监听
常量说明:
position:当前点击滑动页面的位置
positionOffset:当前页面偏移的百分比
positionOffsetPixels:当前页面偏移的像素位置
position:选中显示页面的位置
STATE:当前页面的状态
SCROLL_STATE_IDLE:空闲状态
SCROLL_STATE_DRAGGING:滑动状态
SCROLL_STATE_SETTLING:滑动后滑翔的状态
ViewPager与Fragment结合使用
初始化控件
准备数据源
定义适配器
设置适配器
ViewPager和Fragment结合使用
bannerr=findViewById(R.id.banner);
List<Integer> list=new ArrayList<>();
list.add(R.drawable.bann1);
list.add(R.drawable.bann2);
list.add(R.drawable.bann3);
list.add(R.drawable.bann4);
bannerr.setImages(list);
bannerr.setImageLoader(new ImageLoader() {
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
Glide.with(context).load(path).into(imageView);
}
});
bannerr.start();
viewPager=findViewById(R.id.view);
radioGroup=findViewById(R.id.radgroup);
List<Fragment> fragments=new ArrayList<>();
fragments.add(new BlankFragment());
fragments.add(new BlankFragment2());
fragments.add(new BlankFragment3());
Myfragent myfragent=new Myfragent(getSupportFragmentManager(),fragments);
viewPager.setAdapter(myfragent);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId){
case R.id.radio1:
viewPager.setCurrentItem(0);
break;
case R.id.radio2:
viewPager.setCurrentItem(1);
break;
case R.id.radio3:
viewPager.setCurrentItem(2);
break;
}
}
});
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.radio1);
break;
case 1:
radioGroup.check(R.id.radio2);
break;
case 2:
radioGroup.check(R.id.radio3);
break;
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
<com.youth.banner.Banner
android:layout_weight="2"
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="0dp"></com.youth.banner.Banner>
<androidx.viewpager.widget.ViewPager
android:id="@+id/view"
android:layout_weight="9"
android:layout_width="match_parent"
android:layout_height="0dp"></androidx.viewpager.widget.ViewPager>
<RadioGroup
android:id="@+id/radgroup"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radio1"
android:button="@null"
android:textAlignment="center"
android:textColor="@drawable/color"
android:layout_weight="1"
android:text="首页"
android:textSize="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></RadioButton>
<RadioButton
android:id="@+id/radio2"
android:button="@null"
android:layout_weight="1"
android:text="分类"
android:textAlignment="center"
android:textSize="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></RadioButton>
<RadioButton
android:id="@+id/radio3"
android:button="@null"
android:textAlignment="center"
android:layout_weight="1"
android:text="我的"
android:textSize="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></RadioButton>
</RadioGroup>