Viewpager的使用

第一:

首先在activity_main中加入Viewpager控件

    <androidx.viewpager.widget.ViewPager
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/viewPager">

    </androidx.viewpager.widget.ViewPager>

第二

新建三个xml布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/colorAccent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/tvTitle"
        android:layout_gravity="center"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        android:textSize="50sp"
        android:id="@+id/line1"
        />

</LinearLayout>

在这里插入图片描述

第三

在MainActivity中加入代码

public class MainActivity extends AppCompatActivity {
    private ViewPager mViewPager;
    private PagerAdapter mPagerAdapter;//适配器
    private ArrayList<View> mViews;  //存放视图的数组
    private ArrayList<String> mtitle;//存放标题的数组




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mViewPager=findViewById(R.id.viewPager );
        LayoutInflater inflater = getLayoutInflater();

        View view1 = inflater.inflate(R.layout.item_page1, null);
        View view2 = inflater.inflate(R.layout.item_page2, null);
        View view3 = inflater.inflate(R.layout.item_page3, null);



        mViews = new ArrayList<View>();
        mViews.add(view1);
        mViews.add(view2);
        mViews.add(view3);

      

        mPagerAdapter=new ViewPageAdapter(mViews);

        mViewPager.setAdapter(mPagerAdapter);//设置适配器
    }


}

ViewPageAdapter中有一个带参数的构造方法,里面放四个方法

public class ViewPageAdapter extends PagerAdapter {

    private ArrayList<View> mViewlist;

    public ViewPageAdapter() {
    }

    public ViewPageAdapter(ArrayList<View> viewlist) {
        mViewlist = viewlist;
    }




    @Override   //返回要滑动的VIew的个数
    public int getCount() {
        return mViewlist.size();
    }

    @Override  //来判断pager的一个view是否和instantiateItem方法返回的object有关联
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view==object;
    }

    @Override  //从当前container中删除指定位置(position)的View;
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView(mViewlist.get(position));
    }

    @NonNull
    @Override  //第一:将当前视图添加到container中,第二:返回当前View
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        container.addView(mViewlist.get(position));
        return mViewlist.get(position);
    }


}

总结:创建三个页面,创建适配器,实例化适配器
在Viewpager控价中set进适配器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值