Android中用ViewPager做滑动引导页面
2019-03-22 本文已影响0人
穿越平行宇宙
相信大家在刚下载手机app的时候,新进入一个软件都会有一个引导页面,滑过去之后就可以进入首页了,今天写的代码就是用ViewPager简单实现一个引导页面.
- 1.activity_main.xml定义ViewPager控件
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
- 2.定义item布局
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/a" />
- 3.在MainActivity.java中
private ViewPager mVp;
private List<View> PageList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
// 获取控件对象
mVp = (ViewPager) findViewById(R.id.vp);
// 实例化一个集合,用于存储布局文件
PageList = new ArrayList<>();
// 获取要进行滑动的页面
View inflate1 = LayoutInflater.from(this).inflate(R.layout.pager1, null);
View inflate2 = LayoutInflater.from(this).inflate(R.layout.pager2, null);
View inflate3 = LayoutInflater.from(this).inflate(R.layout.pager3, null);
// 把页面放入到集合中
PageList.add(inflate1);
PageList.add(inflate2);
PageList.add(inflate3);
// 设置适配器
MyVp myVp = new MyVp(PageList);
mVp.setAdapter(myVp);
}
- 4.适配器
public class Myvp extends PagerAdapter {
List<View> list;
public Myvp(List<View> list) {
super();
this.list = list;
}
// 控制加载的数量(一共可以滑动多少个页面)
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
// 下标和View 对应关系
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
View view = list.get(position);
container.addView(view);
// 返回你要看到的布局
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
// super.destroyItem(container, position, object); 这个不需要
// 让旧的布局滑走了
container.removeView(list.get(position));
}
}