Viewpager的使用簡單認識(1)

viewpager的是爲了 實現左右滑動切換頁面的效果, 常用於與導航欄和 廣告欄
ViewPager+Fragment配合使用。
1.ViewPager類需要一個PagerAdapter適配器類給它提供數據。
2.Viewpager 繼承自viewgroup是一個容器類。

1.簡單使用

(1)導入佈局 viewpager控件存在v4jar包裏 使用的時候需要先導入找到控件android.support.v4.view.ViewPager
(2)PageAdapter 必須重寫的四個函數:

 int getCount()  \\返回要滑動的VIew的個數
 boolean isViewFromObject(View arg0, Object arg1) \\ view和object是否有關聯 

Object instantiateItem(ViewGroup container, int position)
   第一:將當前視圖添加到container中,
   第二:返回當前View

void destroyItem(ViewGroup container, int position,Object object)
   從當前container中刪除指定位置(position)的View;

先看效果爲了方便3個view的顏色分別是黃綠藍 爲了看起來明顯一些。第一個界面效果
第二個界面效果第三個界面效果

1.佈局

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.viewpagerdemo.MainActivity$PlaceholderFragment">
<android.support.v4.view.ViewPager
android:id="@+id/viewpger"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="wrap_content" />
</RelativeLayout>
文件

(2) MainActivity 裏的代碼

public class MainActivity extends ActionBarActivity {
    private ViewPager viewPager;//viewpager控件
    private View view1, view2, view3;//3個view存放3個佈局文件
    PagerAdapter pagerAdapter;//pageradpter必須要重寫的適配器 
    private List<View> viewlist;//把佈局存放在集合裏邊作爲數據源

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);
        viewPager = (ViewPager)findViewById(R.id.viewpger);//找控件
        LayoutInflater inflater = getLayoutInflater();//佈局加載器
        view1 = inflater.inflate(R.layout.first_layout, null);//
        view2 = inflater.inflate(R.layout.second_layout, null);
        view3 = inflater.inflate(R.layout.three_layout, null);
        viewlist = new ArrayList<View>(); // 存放View的集合
        viewlist.add(view1);
        viewlist.add(view2);
        viewlist.add(view3);

        pagerAdapter = new PagerAdapter() {
                //初始化綁定數據
            @Override
            public Object instantiateItem(View container, int position) {
                // TODO Auto-generated method stub
                ((ViewGroup) container).addView(viewlist.get(position));

                return viewlist.get(position);
            }

               // 滑動切換的時候銷燬當前的組件
            @Override
            public void destroyItem(View container, int position, Object object) {
                // TODO Auto-generated method stub
                ((ViewPager) container).removeView(viewlist.get(position));
            }

              // 每次滑動的時候生成的組件
            @Override
            public boolean isViewFromObject(View arg0, Object arg1) {
                // TODO Auto-generated method stub
                return arg0 == arg1;
            }
              // viewpager中的組件數量
            @Override
            public int getCount() { 
                // TODO Auto-generated method stub
                return viewlist.size();
            }
        };
        viewPager.setAdapter(pagerAdapter);//設置adpter
    }

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