日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

android viewpager fragment传值,Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题...

發布時間:2023/12/10 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android viewpager fragment传值,Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

之前在做一個Viewpager上面加載多個Fragment時總會實例化已經創建好的Fragmnet對象類似

viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {

@Override

public Fragment getItem(int position) {

switch(position){

case 0:

fragments=new Fragmnet01();

break;

case 1:

fragments=new Fragmnet02();

break;

.....

}

return fragments;

}

@Override

public int getCount() {

return listTabs.size();

}

});

其實仔細想一下,這樣是很不合理的,首先你一直實例化對內存是一種浪費另外Viewpager具有預加載性當我們加載某一個Fragmnet時它就會把它的左邊和右邊都會加載(開頭和結尾例外。)所以為了防止重復加載浪費資源,我們可以使用一個對象數組來加載fragment,當每次位置為空的時候我們就可以在該位置上面加載一個布局具體代碼

//定義一個對象數組并給定長度

fragments=new MyFragment[listTabs.size()];

viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {

@Override

public Fragment getItem(int position)

{

//在這里判斷如果Fragmnet[position]當前頁面沒有加載的話我們再次在上面加載

if(fragments[position]==null){

//這里只是寫一個構造方法把值傳到fragment里面

MyFragment my = MyFragment.getInstance(listTabs.get(position).getId());

fragments[position]=my;

}

return fragments[position];

}

@Override

public int getCount() {

return listTabs.size();

}

});

在fragment里面當然你也可以用bundler來傳值。

public static MyFragment getInstance(int id){

MyFragment myFragment=new MyFragment();

Bundle bundle=new Bundle();

bundle.putInt("id",id);

myFragment.setArguments(bundle);

return myFragment;

}

以上所述是小編給大家介紹的Android開發中如何解決Fragment +Viewpager滑動頁面重復加載的問題 ,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

總結

以上是生活随笔為你收集整理的android viewpager fragment传值,Android开发中如何解决Fragment +Viewpager滑动页面重复加载的问题...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。