0

viewpager ve viewpager farklı child fragments içeren Acadmey kapsayıcı parçam var. View pager'ın çocuk bölümlerinde, verilerin doldurulmasını sağlamak için json isteğini çağırıyorum. İlk defa her şey gayet iyi çalışıyor ama main activity geri almak ve tekrar görünümü çağrı cihazı için sırtlarını alınca child fragment tüm içeriği bu nedenle benim viewpagers sayfalar olan ve sadece ilk zamanın onActivityCreated aramaları sildi olduğunu Açtığım her saniye veya n için boş. Çocuk fragmanının içeriğini yeniden kullanmak için nasıl koruyabilirim ya da viewpager'in her çocuk parçasının yeniden açılmasında her defasında defentaly callbacked olacaktır.Android - Bir parçanın içindeki Viewpager durumunu kaydetme

Benim Konteyner Parçası: -

public class Academy extends Fragment { 
    ViewPager viewPager = null; 
    TabLayout tabLayout; 
    MyViewPagerAdapter adapter; 
    private String myString = "hello"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    Log.d("xx", "view started .............. papa"); 
    return inflater.inflate(R.layout.academy, container, false); 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    tabLayout = (TabLayout) getActivity().findViewById(R.id.tablayoutacademy); 
    viewPager = (ViewPager) getActivity().findViewById(R.id.academypager); 
    adapter = new MyViewPagerAdapter(getActivity().getSupportFragmentManager()); 
    adapter.addfragment(new FragmentCourse(), "COURSES"); 
    adapter.addfragment(new FragmentEducator(), "EDUCATORS"); 
    viewPager.setAdapter(adapter); 
    tabLayout.setupWithViewPager(viewPager); 

} 

} 

Benim Viewpager Çocuk Fragment (Dersler)

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    Log.d("xx", "view course started..........................."); 
    progress=new ProgressDialog(getContext()); 
    progress.setMessage("Nukeing.."); 
    progress.show(); 
    return inflater.inflate(R.layout.fragmentcourse, container, false); 

} 

@Override 
public void onActivityCreated(Bundle jhoola2) { 
    super.onActivityCreated(jhoola2); 
      Log.d("xx", "acti cource started"); 
    recyclerView = (RecyclerView) getActivity().findViewById(R.id.rv2); 
    manager = new LinearLayoutManager(getActivity()); 
    recyclerView.setLayoutManager(manager); 
    recyclerView.setHasFixedSize(true); 
    Handler handler = new Handler() { 


     @Override 
     public void handleMessage(Message msg) { 
      super.handleMessage(msg); 
      MyImageCompress ic=new MyImageCompress(); 

      Bundle bundle=new Bundle(); 
      bundle=msg.getData(); 

      title1 = bundle.getStringArrayList("C_name"); 
      dec1=bundle.getStringArrayList("Discription"); 
      image1=bundle.getStringArrayList("Image"); 
      for (int i = 0; i < image1.size(); i++) { 

       imageArray1.add(ic.StringToBitMap(image1.get(i))); 
       Log.d("handleMessage: "," Final parse" +i); 
      } 
      Log.d("handleMessage: EDU ", title1.size() + "" + dec1.size() + imageArray1.size()); 
           adapter = new RecyclerAdaptra(title1, dec1, imageArray1); 
      progress.hide(); 

      recyclerView.setAdapter(adapter); 
      adapter.notifyDataSetChanged(); 

     } 
    }; 
    GetCources gc= new GetCources(url,handler); 
    gc.executeRequest(); 
    } 
} 

* Benim ViewPager Adaptörü *

class MyViewPagerAdapter extends FragmentPagerAdapter { 
ArrayList<Fragment> fragments = new ArrayList<Fragment>(); 
ArrayList<String> tabtitles = new ArrayList<String>(); 

public void addfragment(Fragment fragments, String titles) { 
    this.fragments.add(fragments); 
    this.tabtitles.add(titles); 
} 

public MyViewPagerAdapter(FragmentManager fm) { 
    super(fm); 
} 

@Override 
public Fragment getItem(int i) { 
    return fragments.get(i); 

} 

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

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

cevap

0

bir ViewPager içinde kullanarak Fragment, yapmanız gereken getSupportFragmentManager() yerine getChildFragmentManager() kullanın. Çağrı cihazındaki parçalar, ana içerikten değil, konteyner parçasının çocuklarıdır.

İlgili konular