andriod浅解之自定义组件ViewPager

ViewPager用于实现多页面的切换效果,该类存在于Google的兼容包里面,所以在引用时记得在BuilldPath中加入“android-support-v4.jar”

主布局文件

main.xml

查看源码 
打印 ?
01 <?xmlversion="1.0"encoding="utf-8"?> 
02 <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
03 android:layout_width="fill_parent"
04 android:layout_height="fill_parent"
05 android:orientation="vertical"
06
07 <android.support.v4.view.ViewPager
08 android:id="@+id/viewpager"
09 android:layout_width="wrap_content"
10 android:layout_height="wrap_content"
11 android:layout_gravity="center"
12
13 <android.support.v4.view.PagerTitleStrip
14 android:id="@+id/pagertitle"
15 android:layout_width="wrap_content"
16 android:layout_height="wrap_content"
17 android:layout_gravity="top"/> 
18 </android.support.v4.view.ViewPager
19
20 </LinearLayout>
其中ViewPager为多页显示控件,PagerTitleStrip用于显示当前页面的标题  

 

主窗口代码:

PagerTitleDemoActivity.java

查看源码 
打印 ?
01 packagecom.ns.pager; 
02
03 importjava.util.ArrayList; 
04
05 importandroid.app.Activity; 
06 importandroid.os.Bundle; 
07 importandroid.support.v4.view.PagerAdapter; 
08 importandroid.support.v4.view.PagerTitleStrip; 
09 importandroid.support.v4.view.ViewPager; 
10 importandroid.view.LayoutInflater; 
11 importandroid.view.View; 
12
13 publicclassPagerTitleDemoActivity extendsActivity { 
14 /** Called when the activity is first created. */
15 privateViewPager mViewPager; 
16 privatePagerTitleStrip mPagerTitleStrip; 
17 @Override
18 publicvoidonCreate(Bundle savedInstanceState) { 
19 super.onCreate(savedInstanceState); 
20 setContentView(R.layout.main); 
21 mViewPager = (ViewPager)findViewById(R.id.viewpager); 
22 mPagerTitleStrip = (PagerTitleStrip)findViewById(R.id.pagertitle); 
23
24 //将要分页显示的View装入数组中 
25 LayoutInflater mLi = LayoutInflater.from(this); 
26 View view1 = mLi.inflate(R.layout.view1, null); 
27 View view2 = mLi.inflate(R.layout.view2, null); 
28 View view3 = mLi.inflate(R.layout.view3, null); 
29
30 //每个页面的Title数据 
31 finalArrayList<View> views = newArrayList<View>(); 
32 views.add(view1); 
33 views.add(view2); 
34 views.add(view3); 
35
36 finalArrayList<String> titles = newArrayList<String>(); 
37 titles.add("tab1"); 
38 titles.add("tab2"); 
39 titles.add("tab3"); 
40
41 //填充ViewPager的数据适配器 
42 PagerAdapter mPagerAdapter = newPagerAdapter() { 
43
44 @Override
45 publicbooleanisViewFromObject(View arg0, Object arg1) { 
46 returnarg0 == arg1; 
47
48
49 @Override
50 publicintgetCount() { 
51 returnviews.size(); 
52
53
54 @Override
55 publicvoiddestroyItem(View container, intposition, Object object) { 
56 ((ViewPager)container).removeView(views.get(position)); 
57
58
59 @Override
60 publicCharSequence getPageTitle(intposition) { 
61 returntitles.get(position); 
62
63
64 @Override
65 publicObject instantiateItem(View container, intposition) { 
66 ((ViewPager)container).addView(views.get(position)); 
67 returnviews.get(position); 
68
69 }; 
70
71 mViewPager.setAdapter(mPagerAdapter); 
72
73 }
Android的 ViewPager 学习笔记

你可能感兴趣的:(android)