ViewPager實現左右滑動2014.08.31

實現步驟

1 佈局文件添加 android.support.v4.view.ViewPager確定區域

            <android.support.v4.view.ViewPager
             android:id="@+id/main_viewPager"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:layout_alignParentTop="true"
             android:layout_gravity="center"
             android:persistentDrawingCache="animation" />

2  創建ViewPager mViewPager對象

    mViewPager = (ViewPager)findViewById(R.id.main_viewPager); 


3 創建HashMap<String, Object> map容器

    HashMap<String, Object> map = new HashMap<String, Object>();

    map.put("ItemImage", R.drawable.main_btn_radio);// 添加圖像資源的ID

    map.put("ItemText", getString(R.string.Radio).toString());// 按序號做ItemText

4 創建ArrayList<HashMap<String, Object>> lstImageItem

   把HashMap對象添加到ArrayList中 ,即lstImageItem.add(map);

   如果是八宮格需添加八個HashMap對象到ArrayList中,如此類推!

5 創建SimpleAdapter saImageItems對象

   SimpleAdapter saImageItems = new SimpleAdapter(this, 
    lstImageItem,// 數據列表
    R.layout.item,// 每個宮格的佈局
    new String[] { "ItemImage", "ItemText" },// 動態數組與ImageItem對應的子項
    new int[] { R.id.item_imageButton1, R.id.item_textView1 });// ImageItem的XML文件裏面的一個ImageView,一個TextView ID

6 創建GridView gridview對象,把saImageItems 設置爲gridview的接口

  gridview.setAdapter(saImageItems);
  gridview.setNumColumns(4);
  gridview.setOnItemClickListener(this);
  gridview.setOnTouchListener(this);

7  創建ArrayList<View> mViewList對象,把gridview添加到ArrayList<View>中

   ArrayList<View> mViewList = new ArrayList<View>();

  mViewList.add(gridview); //此時是一頁的數據

8 創建PagerAdapter mPagerAdapter對象,把ArrayList<View>的數據給PagerAdapter調用

     //ViewPager適配器
    mPagerAdapter = new PagerAdapter() {

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}

@Override
public int getCount() {
return mViewList.size();
}

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

@Override
public Object instantiateItem(View container, int position) {
((ViewPager)container).addView(mViewList.get(position));
return mViewList.get(position);
}
};

9 把PagerAdapter設置爲ViewPager 的接口

    mViewPager.setAdapter(mPagerAdapter);


注意:PagerAdapter作爲ViewPager的適配器接口時

           頁面初始化後需調用notifyDataSetChanged();通知數據改變!

           mPagerAdapter.notifyDataSetChanged();

過程:(至上而下)

     ViewPage--PagerAdapter--ArrayList<View>--gridview--SimpleAdapter--ArrayList<HashMap<String, Object>>--HashMap<String, Object>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章