ViewPage第一課

2642 ワード

ステップ1:
レイアウトファイルへの追加:android.support.v 4.viewは拡張パッケージなので義viewの場合もこの形式を使います
          android:id="@+id/vp_viewpage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
   

ステップ2:
4つのレイアウトファイルを作成します:page 01.xml,page 02,page 03,page 04
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#8A2BE2"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:text="page01"
        android:textSize="40sp" >
    </TextView>

</LinearLayout>

ステップ3:
MainActivity:
public class MainActivity extends Activity {
	private ViewPager viewpager;
	private List<View> children;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		viewpager = (ViewPager) findViewById(R.id.vp_viewpage);
		children = new ArrayList<View>();
		children.add(LayoutInflater.from(this).inflate(R.layout.page01, null));
		children.add(getLayoutInflater().inflate(R.layout.page02, null));
		children.add(getLayoutInflater().inflate(R.layout.page03, null));
		children.add(getLayoutInflater().inflate(R.layout.page04, null));

		viewpager.setAdapter(new InnerPagerAdapter());
	}
	public class InnerPagerAdapter extends PagerAdapter{

		@Override
		public int getCount() {
			//         

			return children.size();//  viewpage          ,
		}

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

		//       PageAdapter           
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			//    ViewPager      position       View  
			View view = children.get(position);
			container.addView(view);


			return view;
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			// ViewPager      position   View  
			container.removeView(children.get(position));
		}
	}

}