2016-12-28 3 views
0

写真と署名を取った後、ImageViewに表示されます。ただし、タブを交換すると、ImageViewはデフォルトのImageに戻ります。私のスクリーンショットを参照してください。それは、入力された値がまだあるeditTextに来るときスワイプタブス後のImageViewの変更

sample image- screenshot

は全く問題ありません。しかし、ImageViewが私の問題です。この問題の原因は何ですか?そして私はこれをどのように修正できますか?

コード:

public class RegisterUser extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
     View v =inflater.inflate(R.layout.activity_register_user,container,false); 
     // Setting ViewPager for each Tabs 
     ViewPager viewPager = (ViewPager) v.findViewById(R.id.viewpager); 
     setupViewPager(viewPager); 
     // Set Tabs inside Toolbar 
     TabLayout tabs = (TabLayout) v.findViewById(R.id.tabs); 
     tabs.setupWithViewPager(viewPager); 
     // Create Navigation drawer and inlfate layout 

     return v; 
    } 

    // Add Fragments to Tabs 
    private void setupViewPager(ViewPager viewPager) { 
     Adapter adapter = new Adapter(getChildFragmentManager()); 
     adapter.addFragment(new ListContentFragment(), "Info 1"); 
     adapter.addFragment(new TileContentFragment(), "info 2"); 
     adapter.addFragment(new CaptureSignatureActivity(), "info 3"); 
     adapter.addFragment(new CardContentFragment(), "info 4"); 
     viewPager.setAdapter(adapter); 
    } 

    static class Adapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public Adapter(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); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 
} 

答えて

1

あなたはTabLayoutのタブ(実際フラグメント、)を介してスワイプすると、デフォルトの動作は、システムが現在の意志に空きメモリとその後のフラグメントに、前Fragmentを殺すということですメモリにロードする。

あなたのコードで、同様のことが起こっています。 3番目のタブ(CaptureSignatureFragment)に写真と署名をロードしてからタブをスワイプすると、CaptureSignatureFragmentが殺され、両方のImageViewにデフォルト画像が設定されます。

あなたも、タブを変更した後、そのまま第三タブ内のデータを保持したい場合は、あなたがより良い(いいえ、あなたが持っているタブの。)あなたのViewPagerのoffscreen limit〜4を設定する必要がありますによって:今すぐ

viewPager.setOffscreenPageLimit(4) 

、変更タブはfragmentsのいずれも消去しません。ただし、これを行うとパフォーマンスの問題が発生する可能性があります。

+1

これは私の問題を解決しました:)あなたに感謝していただきありがとうございます。よくやった! –

関連する問題