ViewPager實現Tab布局

2021-07-10 06:09:21 字數 3603 閱讀 4562

<

android.support.v4.view.viewpager

android:id="@+id/content"

android:layout_width="fill_parent"

android:layout_height="0dp"

android:layout_weight="1" 

>

android.support.v4.view.viewpager

>

viewpager是乙個「容器」,可以承裝

view

物件,也可以承裝

fragment

載入顯示的頁卡:

將layout

布局轉換為

view

物件(1)layoutinflater if = getlayoutinflater().from(this);

if.inflate(resource,root);

(2)view.inflate(context,resource,root);

介面卡——配置adapter

(1)pageradapter 資料來源:

list

(2)fragmentpageradapter 資料來源:

list

(3)fragmentstatepageradapter 資料來源:

list

一、示例:

1、在activity

中新增viewpager

2、再分別建立幾頁

}4、自定義介面卡

public class mypageradapter extends pageradapter

/*** 返回頁卡數量

*/@override

public int getcount()

/*** view是否來自於物件

*/@override

public boolean isviewfromobject(view arg0, object arg1)

/*** 例項化乙個頁卡

*/@override

public object instantiateitem(viewgroup container, int position)

/*** 銷毀乙個頁卡

*/@override

public void destroyitem(viewgroup container, int position, object object)

}

如我有4

個頁卡,當我載入第二個頁卡時,是在同時例項化1、

2、3個,載入第三個時,同時例項化2、

3、4,銷毀第1個。

5、建立pager 

並載入介面卡

public class mainactivity extends actionbaractivity 

}

二、viewpager 

的標題1、在布局中新增

viewpagerstrip

2、建立

viewpagerstrip

,載入標題,並修改

adapter

public class mainactivity extends actionbaractivity 

}

3、修改adapter

public class mypageradapter extends pageradapter

@override

public int getcount()

@override

public boolean isviewfromobject(view arg0, object arg1)

@override

public object instantiateitem(viewgroup container, int position)

@override

public void destroyitem(viewgroup container, int position, object object)

@override//新增getpagetitle方法

/*** 設定頁卡標題

*/public charsequence getpagetitle(int position)

}

三、fragment

1、建立

fragment1 

類 繼承

fragment

,並建立初始化介面的方法 oncreateview。我們建立3

個。

2、在mainactivity 

中初始化資料來源

public class mainactivity extends fragmentactivity 

}

3、自定義介面卡myfragmentpageradapter

public class myfragmentpageradapter extends fragmentpageradapter

@override

public fragment getitem(int arg0)

@override

public int getcount()

//補充getpagertitle方法

@override

public charsequence getpagetitle(int position)

}

p.s.如果介面卡繼承

fragmentstatepageradapter,

要加兩個方法完成建立和銷毀。

四、***

繼承onpagerchangelistener

public class mainactivity extends fragmentactivity implements onpagechangelistener

@override

public void onpagescrollstatechanged(int arg0)

@override

public void onpagescrolled(int arg0, float arg1, int arg2)

@override

public void onpageselected(int arg0)

}

ViewPager實現無限迴圈

從乙個方向上一直滑動。麼有滑到盡頭的感覺。詳細是怎麼實現的呢?看以下的思路。此處畫了一幅圖來表達實現無限迴圈的思路,即在資料起始位置前插入最後一項資料。在最後一項資料後插入第一項資料,當滑動到此處時。更新頁面的索引位置就ok了 這種方法用於資料處理,當中medialist是原始資料,newmedia...

ViewPager實現Fragment懶載入

通過在onpagechangelistener中呼叫懶載入,當fragment切換到下乙個或者切換中進行懶載入。1 先寫乙個介面 原因 1 隔離具體實現 不依賴具體fragment,否則在用的時候就需要乙個乙個對具體實現進行判斷 2 僅處理需要懶載入的fragment public inte ce ...

ViewPager實現左右滑動2014 08 31

實現步驟 1 布局檔案新增 android.support.v4.view.viewpager確定區域 2 建立viewpager mviewpager物件 mviewpager viewpager findviewbyid r.id.main viewpager 3 建立hashmapmap容器 ...