ViewPager实现页面切换

时间:2022-11-30 11:42:04

最近一段时间安装新应用时,很多应用第一次启动,都是通过几个页面的切换来展示一些内容,但是第二次启动应用的时候却不出现了,样子如下图所以

ViewPager实现页面切换ViewPager实现页面切换ViewPager实现页面切换

我个人感觉这个效果蛮好的,于是找了一下资料,发现实现这个功能也不是挺难,主要是用到ViewPager这个东西,要使用ViewPager,需要引入附加包android-support-v4.jar,读者可以再sdk中找到,好了废话不多说了,贴代码了:

首先是布局文件,要使用一个ViewPager:

<android.support.v4.view.ViewPager
        	android:id="@+id/viewpager"
        	android:layout_width="fill_parent"
        	android:layout_height="fill_parent"
        	/>
上面代码是在界面中现实出ViewPager,但是还需要为ViewPager的每个页卡显示内容,这里我是另外用3个xml来显示不同颜色,以便区分开来

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


然后是在activity类中使用,代码为:

private void initViewPager() {
    	viewPager = (ViewPager) findViewById(R.id.viewpager);
    	listView = new ArrayList<View>();
    	LayoutInflater inflater = getLayoutInflater();
    	listView.add(inflater.inflate(R.layout.lay1, null));
    	listView.add(inflater.inflate(R.layout.lay2, null));
    	listView.add(inflater.inflate(R.layout.lay3, null));
    	viewPager.setAdapter(new MyPagerAdapter(listView));
    	viewPager.setOnPageChangeListener(new MyPagerChangeListener());
    	
    }

适配器代码为:

public class MyPagerAdapter extends PagerAdapter {
    	
    	private List<View> list;
    	
    	public MyPagerAdapter(List<View> list) {
    		this.list = list;
		}
    	
		@Override
		public void destroyItem(View view, int index, Object arg2) {
			// TODO Auto-generated method stub
			((ViewPager)view).removeView(list.get(index));
		}

		@Override
		public void finishUpdate(View arg0) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return list.size();
		}

		@Override
		public Object instantiateItem(View view, int index) {
			((ViewPager)view).addView(list.get(index), 0);
			return list.get(index);
		}

		@Override
		public boolean isViewFromObject(View view, Object object) {
			// TODO Auto-generated method stub
			return view == (object);
		}

		@Override
		public void restoreState(Parcelable arg0, ClassLoader arg1) {
			// TODO Auto-generated method stub
			
		}

		@Override
		public Parcelable saveState() {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public void startUpdate(View arg0) {
			// TODO Auto-generated method stub
			
		}
    	
    }

最终的效果图为

ViewPager实现页面切换


源码下载:csdn下载


以上是ViewPager的效果演示,接下来实现应用第一次启动时,进入引导页面,否则直接进入主界面的功能:

我的思路是用SharedPreferences来保存一个值,该值标志这应用是不是第一次启动,如果不是第一次启动,则从引导页面直接跳转到主界面(也可以启动一个service来现在启动那一个activity)

ViewPager实现页面切换

在这里接不贴出代码了,欢迎下载:代码下载