![](/img/trans.png)
[英]SlidingFragmentActivity: How to save instance of view pager with different fragment
[英]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.