Android适配器之PagerAdapter

PagerAdapter


先看API:直接继承与object

为了方便大家使用,将其官方给出的相关方法展现出来;

PagerAdapter

extends  Object
java.lang.Object
   ↳android.support.v4.view.PagerAdapter
Public Methods
void destroyItem( ViewGroup container, int position,  Object object)
Remove a page for the given position.
void destroyItem( View container, int position,  Object object)
This method is deprecated. Use destroyItem(ViewGroup, int, Object)
void finishUpdate( View container)
This method is deprecated. Use finishUpdate(ViewGroup)
void finishUpdate( ViewGroup container)
Called when the a change in the shown pages has been completed.
abstract int getCount()
Return the number of views available.
int getItemPosition( Object object)
Called when the host view is attempting to determine if an item's position has changed.
CharSequence getPageTitle(int position)
This method may be called by the ViewPager to obtain a title string to describe the specified page.
float getPageWidth(int position)
Returns the proportional width of a given page as a percentage of the ViewPager's measured width from (0.f-1.f]
Object instantiateItem( ViewGroup container, int position)
Create the page for the given position.
Object instantiateItem( View container, int position)
This method is deprecated. Use 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()
This method should be called by the application if the data backing this adapter has changed and associated views should update.
void registerDataSetObserver( DataSetObserver observer)
Register an observer to receive callbacks related to the adapter's data changing.
void restoreState( Parcelable state,  ClassLoader loader)
Restore any instance state associated with this adapter and its pages that was previously saved by  saveState().
Parcelable saveState()
Save any instance state associated with this adapter and its pages that should be restored if the current UI state needs to be reconstructed.
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)
This method is deprecated. Use startUpdate(ViewGroup)
void startUpdate( ViewGroup container)
Called when a change in the shown pages is going to start being made.
void unregisterDataSetObserver( DataSetObserver observer)
Unregister an observer from callbacks related to the adapter's data changing.

在使用 PagerAdapter 时会重写如下方法;

instantiateItem(ViewGroup, int)
这个方法,return一个对象,这个对象表明了PagerAdapter适配器选择哪个对象*放在当前的ViewPager中
 
destroyItem(ViewGroup, int, Object)
这个方法,是从ViewGroup中移出当前View
 
getCount()
这个方法,是获取当前窗体界面数
 
isViewFromObject(View, Object)
这个方法,在帮助文档中原文是could be implemented as return view == object,*也就是用于判断是否由对象生成界面


下面看代码的实现:


首先给viewpage提供一个资源,一般用List<View> listViews;其实就是一个viewgroup;

((ViewPager) container).addView(listViews.get(position), 0);这里是像viewpager中添加ListView对象;

((ViewPager) container).removeView(listViews.get(position));注意这里,对viewpager里面的ListView进行删除操作;






public class MypagerAdpter extends PagerAdapter {
private List<View> listViews;


public MypagerAdpter(List<View> listViews) {
super();
this.listViews = listViews;
}


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


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


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


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


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值