AndroidViewPager的使用(一)

本文介绍如何使用ViewPager结合PagerAdapter实现视图左右滑动效果,包括创建自定义PagerAdapter子类及实现必要的四个方法:instantiateItem、destroyItem、getCount与isViewFromObject。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Viewpager是v4包中提供的可以实现View向左/向右滑动效果的视图控件,使用时结合PagerAdapter或者FragmenPagerAdapter一起使用!先了解ViewPager+PagerAdapter的使用
与PagerAdapter结合使用:
ViewPager和PageAdapter结合使用时,首先得创建一个Adapter继承PagerAdapter,并重写4个方法,这4个方法是比需要重写的:
    instantiateItem(ViewGroup, int):将View条目添加到ViewPager中
    destroyItem(ViewGroup, int, Object):移除View条目
    getCount():得到需要添加到ViewPager中的View条目数
    isViewFromObject(View, Object):判断view是否与Object相关联;
 具体步骤:
 1.初始化ViewPager、PagerAdapter;
 2.在PagerAdapter中添加View;
 3.给ViewPager设置PagerAdapter;
 例:实现图片可以左右滑动效果:

 xml布局代码:

<android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

Java代码中:

初始化ViewPager并设置PagerAdapter:

viewPager=(ViewPager) findViewById(R.id.viewPager);
adapter=new MyPagerAdapter();
viewPager.setAdapter(adapter);

创建PagerAdapter:

/*创建MyPagerAdapter 继承PagerAdapter*/
class MyPagerAdapter extends PagerAdapter{


/*得到Viewpager中View的总条目数*/
@Override
public int getCount() {

return list.size();
}
/*在Viewpager中添加View*/
@Override
public Object instantiateItem(ViewGroup container, int position) {

container.addView(list.get(position));
return list.get(position);
}
/*判断view是否与object关联*/
@Override
public boolean isViewFromObject(View view, Object object) {

return view==object;
}
/*在ViewPager中移除当前View*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
}

添加数据源list:

private List<ImageView> list;
private int[] imageId=new int[]{R.drawable.txt_theme12,R.drawable.txt_theme14,
R.drawable.txt_theme17,R.drawable.txt_theme26,R.drawable.txt_theme27};

list=new ArrayList<ImageView>();
ImageView imageView=null;
for(int i=0;i<imageId.length;i++){
imageView=new ImageView(this);
imageView.setImageResource(imageId[i]);
list.add(imageView);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值