使用ViewPager實現頁面之間的跳轉


Activity代碼

public class MainActivity extends AppCompatActivity {
    private List<View> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list= new ArrayList<View>();
        /**
         * 通過view對象作為viewpager的數據源
         */
        View view1=View.inflate(this,R.layout.view1,null);
        View view2=View.inflate(this,R.layout.view2,null);
        View view3=View.inflate(this,R.layout.view3,null);
        View view4=View.inflate(this,R.layout.view4,null);
        list.add(view1);
        list.add(view2);
        list.add(view3);
        list.add(view4);
        //創建pageadapter
        Mypageadapter mypageadapter= new Mypageadapter(list);
        //初始化viewpager
        ViewPager pager= (ViewPager)findViewById(R.id.viewpager);
        //加載適配器
        pager.setAdapter(mypageadapter);

    }
}

 總體的思路是創建一個View的list集合,通過inflate方法將頁面轉化為view,初始化list並添加view為元素,初始化viewpager並加載適配器

pageradapter代碼

public class Mypageadapter extends PagerAdapter {
    private List<View> viewList;
    public  Mypageadapter(List<View>viewList){
        this.viewList=viewList;
    }
    //返回頁卡的數量
    @Override
    public int getCount() {
        return viewList.size();
    }
    //page是否來自於對象
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view==object;
    }
    /*
    * 實例化一個頁卡
    * */
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        container.addView(viewList.get(position));
        return viewList.get(position);
    }
    //銷毀一個頁卡
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView(viewList.get(position));

    }
}

 繼承pageradapter方法,創建一個有參的構造方法,在Activity中調用時將LIstVIew傳遞進來

除了實現的兩個方法之外還要實現一個初始化頁卡的方法和另一個銷毀頁卡的方法


免責聲明!

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



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