標籤:
API文檔:
ViewPager的功能就是可以使視圖滑動(與ViewFlipper的自動滑動不同的是它要手動滑動),就像Lanucher左右滑動那樣。
所以我們可以用它來做一個app引導介面。
如下:
實現步驟:
1、主介面布局中建立VIewPager。
2、載入各個介面的View。
3、設定PagerAdapter.
注意:
當你實現一個PagerAdapter,你必須至少覆蓋以下方法:
instantiateItem(ViewGroup, int)
destroyItem(ViewGroup, int, Object)
getCount()
isViewFromObject(View, Object)
實現代碼:
MainActivity:
public class MainActivity extends Activity {private ViewPager mviewPager;private View view1, view2, view3;private List<View> viewList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.viewpager);initView();PagerAdapter mpagerAdapter = new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public int getCount() { return viewList.size(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewList.get(position)); } @Override public int getItemPosition(Object object) { return super.getItemPosition(object); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(viewList.get(position)); return viewList.get(position); } }; mviewPager.setAdapter(mpagerAdapter);}void initView() {mviewPager = (ViewPager) findViewById(R.id.viewPager);viewList = new ArrayList<View>();LayoutInflater layoutInflate = getLayoutInflater().from(this);view1 = layoutInflate.inflate(R.layout.layout1, null);view2 = layoutInflate.inflate(R.layout.layout2, null);view3 = layoutInflate.inflate(R.layout.layout3, null);viewList.add(view1);viewList.add(view2);viewList.add(view3);pagerAdapter);}
2、主布局:main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" > </android.support.v4.view.ViewPager> </LinearLayout>
3、各個被載入的子布局,這裡只給出一個,另外兩個布局代碼一樣只是名字不同。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/iamge" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/a" /></LinearLayout>
上面是一個入門級的例子,接下來幾篇會講一些更加深入有技術性的例子。
Android之ViewPager