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
}
}