ViewPager

本文详细介绍了如何在Android应用中创建ViewPager,并演示了如何用自定义Adapter展示Fragment,以及如何配合定时器实现每2秒切换页面。重点讲解了ViewPager与Fragment的结合使用方法。
摘要由CSDN通过智能技术生成

ViewPager

创建ViewPager和相关布局

布局自己写

		main方法中:
		 vp = (ViewPager) findViewById(R.id.vp);
        List<String> list=new ArrayList<>();
        for (int i = 1; i <5 ; i++) {
            list.add("第"+i+"个");
        }
        myadapter myadapter = new myadapter(list, this);
        vp.setAdapter(myadapter);
        适配器:
         private List<String> list;
    private Context context;

    public myadapter(List<String> list, Context context) {
        this.list = list;
        this.context = context;
    }

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

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

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        //super.destroyItem(container, position, object);必须注掉
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        View inflate = LayoutInflater.from(context).inflate(R.layout.vp_layout, null);
        TextView textView = inflate.findViewById(R.id.vp_text);
        textView.setText(list.get(position));
        container.addView(inflate);
        return inflate;
    }
        

ViewPager与Fragment结合使用 ( 重 点 )

vp = (ViewPager) findViewById(R.id.vp);
        final List<Fragment> list=new ArrayList<>();
        list.add(new oneFragment());
        list.add(new twoFragment());
        list.add(new threeFragment());
        myfradapter myfradapter = new myfradapter(getSupportFragmentManager(), list);
        vp.setAdapter(myfradapter);
        //计时器 每2秒换一页
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            int index=0;
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        //当前打开的页面
                        vp.setCurrentItem(index);
                    }
                });
                index++;
                if (index>=list.size()){
                    index=0;
                }
            }
        },0,2000);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值