簡體   English   中英

如何在Android中保存視圖尋呼機片段實例

[英]how to save the view pager fragment instance in android

當我移至另一個標簽時,每次創建新標簽時。 正在從服務器獲取標簽名和目錄,

 private void setTabTitle() {
   Final TabLayout  tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);

mviewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager()));
 viewPager.setOffscreenPageLimit(jSonTab.size());
    tabLayout.post(new Runnable() {
        @Override
        public void run() {
            tabLayout.setupWithViewPager(mviewPager);

            tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
                @Override
                public void onTabSelected(TabLayout.Tab tab) {
                    mviewPager.setCurrentItem(tab.getPosition());      // Get current clicked Tab Position


                }

                @Override
                public void onTabUnselected(TabLayout.Tab tab) {
                }

                @Override
                public void onTabReselected(TabLayout.Tab tab) {
                }
            });
        }
    });
}
public Parcelable saveState() {
    return null;
}
class ViewPagerAdapter extends FragmentStatePagerAdapter {

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {

  return MainFragment.newInstance(CatId.get(position), tabName.get(position));

 }

    @Override
    public int getCount() {
        return tabName.size();
    }

    @Override
    public CharSequence getPageTitle(int position) {

        return tabName.get(position);
    }
}

當我在第一個選項卡中更改任何內容並轉到其他任何選項卡時,第一個選項卡正在刷新並創建新實例,每次調用服務器以獲取特定選項卡的詳細信息

嘗試設置viewPager.setOfscreenPagelimit(noOfPagesInViewPager);

ViewPagerAdapter類擴展FragmentStatePagerAdapter {Mainfragment mainfragment;

public ViewPagerAdapter(FragmentManager manager) {
    super(manager);
    mainfragment=new Mainfragment();
}

@Override
public Fragment getItem(int position) {

     return mainfragment(CatId.get(position), tabName.get(position));

}

@Override
public int getCount() {
    return tabName.size();
}

@Override
public CharSequence getPageTitle(int position) {

    return tabName.get(position);
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM