• viewpager


    配置

    <android.support.v4.view.ViewPager  
            android:id="@+id/viewPager"
            android:layout_width="fill_parent"  
            android:layout_height="fill_parent"
            /> 

    viewpager对应的layout

    <LinearLayout
                android:id="@+id/ll_detail_overview" />
              ......
    </LinearLayout>

    ViewPager的使用

    ViewPager mPager = (ViewPager) findViewById(R.id.viewPager);    
    MyPagerAdapter mPagerAdapter = new MyPagerAdapter(参数); 
    mPager.setAdapter(mPagerAdapter);
    mPager.setOnPageChangeListener(mOnPageChangeListener);  

     MyPagerAdapter继承PagerAdapter实现getCount()、isViewFromObject(View arg0, Object arg1)等方法,

     MyPagerAdapter继承FragmentPagerAdapter实现getItem(int arg0)、getCount()等方法。

       mPager.setCurrentItem(position);//设置当前页

       mOnPageChangeListener里onPageSelected(int currentID)//得到当前页

    遇到的情况

    1,viewpager加载多个不同layout形式的页

      页是用view显示的

    //将要分页显示的View装入数组中
    LayoutInflater mLi = LayoutInflater.from(this);
    View view1 = mLi.inflate(R.layout.view1, null);
    View view2 = mLi.inflate(R.layout.view2, null);
    View view3 = mLi.inflate(R.layout.view3, null);         
    
    final ArrayList<View> views = new ArrayList<View>();
    views.add(view1);
    views.add(view2);
    views.add(view3)

      views用MyPagerAdapter(参数)的形式传递过去,进行处理。

      页是fragment显示的

    FragmentManager fm = getSupportFragmentManager();    
    mPagerAdapter = new MyPagerAdapter(fm); 
    
    //MyPagerAdapter中的方法,获得相应fragment,每个fragment对应一个layout
    public Fragment getItem(int arg0) {
        Fragment fragment = null;
        switch (arg0) {
            case 0:
                fragment = new DetailFragment1();
                break;
            case 1:
                fragment = new DetailFragment2();    
                break;
                     }    
        returen fragment;
    }        

      也可以像views的方法以一个list参数的形式传递过去。

    2,viewpager加载一个layout形式的多页

      待续。。。

    viewpager能呈现多页滑动效果,试试哦!!

  • 相关阅读:
    C# UDP实现通信的方法
    Leetcode 559. N叉树的最大深度
    101. 对称二叉树
    108. 将有序数组转换为二叉搜索树
    剑指 Offer 55
    Linux
    Linux
    Linux
    Linux
    Linux
  • 原文地址:https://www.cnblogs.com/hzwcoming/p/3598585.html
Copyright © 2020-2023  润新知