viewpager的pagerAdapter的使用

本文详细介绍了Android中ViewPager组件的使用方法及其PagerAdapter适配器的工作原理。通过具体代码示例讲解了PagerAdapter中关键方法如 getCount(), isViewFromObject(), instantiateItem(), destroyItem() 和 getPageTitle() 的实现方式。

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

先看效果图,

简单说下viewpage的pagerAdapter的几个方法的用法

贴上代码

 //viewpage的适配器
   class MyViewPageAdapter extends PagerAdapter{
       @Override
       public int getCount() {
           return mainTitlesArray.length;
       }

       //判断是否是否为同一张图片,这里返回方法中的两个参数做比较就可以
       @Override
       public boolean isViewFromObject(View view, Object object) {
           return view==object;
       }
//设置viewpage内部东西的方法,如果viewpage内没有子空间滑动产生不了动画效果
       @Override
       public Object instantiateItem(ViewGroup container, int position) {
           TextView textView = new TextView(MainActivity.this);
           textView.setText(mainTitlesArray[position]);
           textView.setGravity(Gravity.CENTER);
           container.addView(textView);
           //最后要返回的是控件本身
           return textView;
       }
//因为它默认是看三张图片,第四张图片的时候就会报错,还有就是不要返回父类的作用
       @Override
       public void destroyItem(ViewGroup container, int position, Object object) {
                container.removeView((View) object);
  //         super.destroyItem(container, position, object);
       }
//目的是展示title上的文字,
       @Override
       public CharSequence getPageTitle(int position) {
           return mainTitlesArray[position];
       }
   }

一般来说它默认重写的方法只有两个

@Override
public int getCount() {}
@Override
public boolean isViewFromObject(View view, Object object) {
}
这两个方法一个是返回viewpager页面的个数,一个是判断是否为同一张图片
但是这里这样还做不到viewpage滑动的效果, 还需要再加上

public Object instantiateItem(ViewGroup container, int position) {   }
     public void destroyItem(ViewGroup container, int position, Object object) {
     }
 
     public CharSequence getPageTitle(int position) {
     }
三个方法, 
instantiateItem()是用于往viewpage中添加控件,添加内容
destroyItem()是加入页面的时候,默认缓存三个,如不做处理,滑多了程序就会蹦
getPageTitle是展示和viewpager上面tltle的展示文字的效果

最后还有就是tablayout和viewpager绑定的代码

//TabLayout和viewpage绑定
tabLayout.setupWithViewPager(viewPage);

写的比较粗糙,文本格式没有把控好,  先做好内容

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值