2017-05-31 14 views
1

最初のフラグメントがviewPagerで3フラグメントを交換した後にエディットボックスの値を復元しない... 3ページ目のフラグメントがビューページ内にあり、 。空白埋めるエディットテキストが.. plzはいくつかの解決策を与える。..コードはここ..ですview_pagerでスワップバックした後にフラグメントが復元されない

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.fragment_item_master, container, false); 
    viewPager = (ViewPager)v. findViewById(R.id.viewpager); 
    setupViewPager(viewPager); 
    tabLayout = (TabLayout)v. findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 
    return v; 
} 

private void setupViewPager(ViewPager viewPager) { 
    // ViewPagerAdapter adapter = new ViewPagerAdapter(mActivity.getSupportFragmentManager()); 
    ViewPagerAdapter adapter = new ViewPagerAdapter(getChildFragmentManager()); 
    adapter.addFragment(new ItemInfoFragment(), "Item Info"); 
    adapter.addFragment(new ItemExtraInfoFragment(), "Extra Info"); 
    adapter.addFragment(new OrderHistoryFragment(), "Order History"); 
    viewPager.setAdapter(adapter); 
} 



    class ViewPagerAdapter extends FragmentStatePagerAdapter { 
      private final List<Fragment> mFragmentList = new ArrayList<>(); 
      private final List<String> mFragmentTitleList = new ArrayList<>(); 

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

      @Override 
      public Fragment getItem(int position) { 
       return mFragmentList.get(position); 
      } 

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

      public void addFragment(Fragment fragment, String title) { 
       mFragmentList.add(fragment); 
       mFragmentTitleList.add(title); 
      } 
+0

フラグメントロード時に使用する永続性データ型の値を強くしようとすると、問題が解決します –

+0

ViewPagerは、現在表示されているフラグメントと現在のフラグメントの2つのフラグメントを保持します。フラグメントがこのポイントを過ぎた場合、それは削除されます。そう、はい、あなたのデータを格納するためのいくつかの永続的なストレージが必要です –

答えて

1

これは、あなたがフラグメントのより少ない数を持っている場合にのみお勧めします。
ご利用いただけますyourViewPager.setOffscreenPageLimit(numberOfFragmentsInViewPager);
これは、スワイプするたびに新しいフラグメントを作成しないため、データが保持されます。このプロパティを設定しない場合、デフォルト値は1になります。

+0

ありがとうたくさん...それは私の仕事です –

関連する問題