Android PageAdapter翻譯


 

介紹:ViewPager和PagerAdapter結合使用

public abstract class PagerAdapter extends Object

java.lang.Object
   ↳ android.support.v4.view.PagerAdapter
Known Direct Subclasses

Class Overview


提供一個適配器用於填充ViewPager頁面. 你很可能想要使用一個更加具體的實現, 例如: FragmentPagerAdapter or FragmentStatePagerAdapter.

當你實現一個PagerAdapter時,至少需要覆蓋以下幾個方法:

PagerAdapter比AdapterView的使用更加普通.ViewPager使用回調函數來表示一個更新的步驟,而不是使用一個視圖回收機制。在需要的時候pageradapter也可以實現視圖的回收或者使用一種更為巧妙的方法來管理視圖,比如采用可以管理自身視圖的fragment。

 

viewpager不直接處理每一個視圖而是將各個視圖與一個鍵聯系起來。這個鍵用來跟蹤且唯一代表一個頁面,不僅如此,該鍵還獨立於這個頁面所在adapter的位置。當pageradapter將要改變的時候他會調用startUpdate函數,接下來會調用一次或多次的instantiateItem或者destroyItem。最后在更新的后期會調用finishUpdate。當finishUpdate返回時 instantiateItem返回的對象應該添加到父ViewGroup destroyItem返回的對象應該被ViewGroup刪除。methodisViewFromObject(View, Object)代表了當前的頁面是否與給定的鍵相關聯。
 
對於非常簡單的pageradapter或許你可以選擇用page本身作為鍵,在創建並且添加到viewgroup后instantiateItem方法里返回該page本身即可
destroyItem將會將該page從viewgroup里面移除。isViewFromObject方法里面直接可以返回view == object。
 
pageradapter支持數據集合的改變,數據集合的改變必須要在主線程里面執行,然后還要調用notifyDataSetChanged方法。和baseadapter非常相似。數據集合的改變包括頁面的添加刪除和修改位置。viewpager要維持當前頁面是活動的,所以你必須提供getItemPosition方法。

 

Summary


Constants
int POSITION_NONE  
int POSITION_UNCHANGED  
Public Constructors
  PagerAdapter()
Public Methods
void destroyItem(ViewGroup container, int position, Object object)
移除給定位置的頁面
void destroyItem(View container, int position, Object object)
該方法已廢棄.使用 destroyItem(ViewGroup, int, Object)替代
void finishUpdate(View container)
該方法已廢棄.使用 finishUpdate(ViewGroup)代替
void finishUpdate(ViewGroup container)
當顯示界面加載完成時調用該方法
abstract int getCount()
返回可用的視圖數量.
int getItemPosition(Object object)
如果item位置沒有發生改變則返回POSITION_UNCHANGED如果發生了改變則返回POSITION_NONE
CharSequence getPageTitle(int position)
設置當前位置上的ViewPager的標題
float getPageWidth(int position)
返回position位置測量的頁面的寬高比例范圍是(0.f-1.f]
Object instantiateItem(ViewGroup container, int position)
根據指定的位置創建一個page item
Object instantiateItem(View container, int position)
此方法已廢棄,使用 instantiateItem(ViewGroup, int)代替
abstract boolean isViewFromObject(View view, Object object)
Determines whether a page View is associated with a specific key object as returned by  instantiateItem(ViewGroup, int).
void notifyDataSetChanged()
調用該方法更新數據
void registerDataSetObserver(DataSetObserver observer)
注冊觀察者
void restoreState(Parcelable state, ClassLoader loader)
恢復與adapter關聯的所有頁面的狀態實例,並且該頁面是通過saveState()方法保存的。
Parcelable saveState()
保存於adapter關聯的所有的頁面,直到調用restoreState方法時被恢復
void setPrimaryItem(View container, int position, Object object)
This method is deprecated. Use setPrimaryItem(ViewGroup, int, Object)
void setPrimaryItem(ViewGroup container, int position, Object object)
Called to inform the adapter of which item is currently considered to be the "primary", that is the one show to the user as the current page.
void startUpdate(View container)
該方法已廢棄.使用 startUpdate(ViewGroup)代替
void startUpdate(ViewGroup container)
開始調用顯示頁面
void unregisterDataSetObserver(DataSetObserver observer)
在回調函數中通過adapter的數據變化注銷觀察者對象


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM