通过View Pager控件来实现页面滑动效果

这是我博客的第一篇文章,质量不高有待提高,会慢慢变好的^_^

首先在activity_main里面添加View Pager控件并设置id

1
2
3
4
<androidx.viewpager.widget.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

然后在MainActivity里面实例化控件,为了实现View Pager我们需要新建一个类,并继承PagerAdapter并重写里面的四个方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class MyAdapter extends PagerAdapter {

private List<View> mListView;

public MyAdapter(List<View> mListView) {
this.mListView = mListView;
}

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

@Override
public int getCount() {
return mListView.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) {
container.removeView(mListView.get(position));
}
}

然后新建List数组对象,在MainActivity中新建getLayoutInflater对象并将已经创建好的xml UI界面赋值并新建View对象

1
2
3
4
LayoutInflater If = getLayoutInflater().from(this);
View view1 = If.inflate(R.layout.layout1,null);
View view2 = If.inflate(R.layout.layout2,null);
View view3 = If.inflate(R.layout.layout3,null);

然后建立ArrayList数组,并将View对象添加进数组

1
2
3
4
List<View> viewList = new ArrayList<>();
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);

然后new MyAdapter并赋值数组viewList,然后通过viewPager最终实现效果

1
2
3
ViewPager viewPager = findViewById(R.id.vp);
MyAdapter myAdapter = new MyAdapter(viewList);
viewPager.setAdapter(myAdapter);