ViewPager切换的简单实现(个人笔记)

1.根据需求创建View,用集合把他们添加进去
例:

ArrayList<View> views = new ArrayList<>();
        LayoutInflater layoutInflater = LayoutInflater.from(getContext());
        View pager1 = layoutInflater.inflate(R.layout.p15_pager_1, null);
        views.add(pager1);

2.创建适配器,继承PagerAdapter。
例:

public class P15ViewPagerAdapter extends PagerAdapter {

    private ArrayList<View>mViewArrayList;

    P15ViewPagerAdapter(ArrayList<View> viewArrayList) {
        mViewArrayList = viewArrayList;
    }

    @Override
    public int getCount() {
        return mViewArrayList.size();
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view==object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        container.addView(mViewArrayList.get(position));
        return mViewArrayList.get(position);
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView(mViewArrayList.get(position));
    }

}

3.实现ViewPager.OnPageChangeListener接口并为Viewpager添加适配器
例:

 binding.vpP15.setAdapter(new P15ViewPagerAdapter(views));
        binding.vpP15.addOnPageChangeListener(this);
        
        //只用到onPageSelected方法
@Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override
    public void onPageSelected(int position) {
        binding.vpP15.setCurrentItem(position);
    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值