zoukankan      html  css  js  c++  java
  • 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"/>
  • 相关阅读:
    BF算法和KMP算法
    Python课程笔记 (五)
    0268. Missing Number (E)
    0009. Palindrome Number (E)
    0008. String to Integer (atoi) (M)
    0213. House Robber II (M)
    0198. House Robber (E)
    0187. Repeated DNA Sequences (M)
    0007. Reverse Integer (E)
    0006. ZigZag Conversion (M)
  • 原文地址:https://www.cnblogs.com/new0801/p/6175949.html
Copyright © 2011-2022 走看看