ViewPager

整理保存: 
简单的实现:
/**
 * 滑动
 * @author Administrator
 *
 */
private class MyPagerAdapter extends PagerAdapter{

@Override
public int getCount() {
Log.i(TAG, "getCount");
return _listview.size();
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
Log.i(TAG, "isViewFromObject");
return arg0==arg1;
}
@Override
public Object instantiateItem(View container, int position) {
Log.i(TAG, "instantiateItem");
((ViewPager)container).addView(_listview.get(position));
return _listview.get(position);
}
@Override
public Parcelable saveState() {
Log.i(TAG, "saveState");
// return super.saveState();
return null;
}
@Override
public void startUpdate(View container) {
Log.i(TAG, "startUpdate");
}

@Override
public void restoreState(Parcelable state, ClassLoader loader) {
Log.i(TAG, "restoreState");
// super.restoreState(state, loader);
}
@Override
public void finishUpdate(View container) {
Log.i(TAG, "finishUpdate");
}

@Override
public void destroyItem(View container, int position, Object object) {
Log.i(TAG, "destroyItem");
((ViewPager)container).removeView(_listview.get(position));
}
}



//主方法
public class MainUiActivity extends Activity{
private String TAG="MainUiActivity";
private LayoutInflater _inflater;//加载器
private ViewPager viewpager;//控件
private View _firstView,_secondView,_thirdView;
private List<View> _listview;
private MyPagerAdapter _myPagerAdapter;
       
void init(){
_myPagerAdapter=new MyPagerAdapter();
viewpager=(ViewPager) findViewById(R.id.viewpager_layout);
viewpager.setAdapter(_myPagerAdapter);
_listview=new ArrayList<View>();
_inflater=getLayoutInflater();
_firstView=_inflater.inflate(R.layout.viewpager_one,null);
_secondView=_inflater.inflate(R.layout.viewpager_two,null);
_thirdView=_inflater.inflate(R.layout.viewpager_three, null);
}
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main_ui);
init();
_listview.add(_firstView);
_listview.add(_secondView);
_listview.add(_thirdView);
//初始化当前显示的View
viewpager.setCurrentItem(0);
viewpager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
//activity从1到2滑动,2被加载后掉用此方法
Log.i(TAG, "onPageSelected"+position);
View v=_listview.get(position);
}
@Override
public void onPageScrolled(int position, float arg1, int arg2) {
//从1到2滑动,在1滑动前调用
Log.i(TAG, "onPageScrolled"+position);
}
@Override
public void onPageScrollStateChanged(int position) {
//状态有三个0空闲,1是增在滑行中,2目标加载完毕
Log.i(TAG, "onPageScrollStateChanged"+position);
                /**
                 * Indicates that the pager is in an idle, settled state. The current page
                 * is fully in view and no animation is in progress.
                 */
 
                //public static final int SCROLL_STATE_IDLE = 0;
 
                /**
                 * Indicates that the pager is currently being dragged by the user
                 */
 
                //public static final int SCROLL_STATE_DRAGGING = 1;
 
                /**
                 * Indicates that the pager is in the process of settling to a final position.
                 */
 
                //public static final int SCROLL_STATE_SETTLING = 2;

}
});
}
 
配置文件:
  <android.support.v4.view.ViewPager android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/viewpager_layout"/>

posted on 2013-05-16 14:42  三少爷的剑123  阅读(96)  评论(0编辑  收藏  举报

导航