Bir ViewPager ve NavigationMode ile İşlem Çubuğu kullanılan navigation_mode_tabs (sağ sekme)Çağrı onStart() Fragment of Viewpager gösterilecek önce
Öncelikle Fragment0 görünür ve yöntemler "onCreateView" ve "onStart", Fragment0 vE Fragment1
Ben "orta sekmesine" gitmek için yatay olarak kaydırın Eğer
(Fragment1) için denir Fragment2'nin "onCreateView" ve "onStart" yöntemleri (sağ sekme) ...Bunun normal olup olmadığını bilmek istiyorum.
Fragment2'nin "onStart" öğesini hemen görünmeden hemen önce aramak istiyorum, Nasıl Yapılır?
Kodum:
public class ActivityPrincipale extends FragmentActivity {
private Intent intentService1;
private Fragment fragment;
[..]
private ActionBar.TabListener tabListener;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.viewpager);
// Création de la liste de Fragments que fera défiler le PagerAdapter
listFragments = new Vector();
// Ajout des Fragments dans la liste des fragments
listFragments.add(Fragment.instantiate(this, Fragment0.class.getName()));
listFragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
listFragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
// Création de l'adapter qui s'occupera de l'affichage de la liste de Fragments
this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), listFragments);
pagerView = (ViewPager) super.findViewById(R.id.viewpager);
// affectation de l'adapter au ViewPager
pagerView.setAdapter(this.mPagerAdapter);
pagerView.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// Quand il y a un swapp entre les page
// on selectionne le tab correspondant
Log.w("SWAPPING FRAGMENT!!", "swapping de fragment avec comme positin de destination = " + position);
getActionBar().setSelectedNavigationItem(position); // DEBUGMODE
}
});
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Create a tab listener that is called when the user changes tabs.
tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
pagerView.setCurrentItem(tab.getPosition());
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
};
actionBar.addTab(actionBar.newTab().setText("Frag0").setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("Frag1"").setTabListener(tabListener));
actionBar.addTab(actionBar.newTab().setText("Frag2").setTabListener(tabListener));
}
}
Bir Parçası:
public class Fragment0 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_0, container, false);
Log.w("oFragmento", "fragment0");
return rootView;
}
}
Benim PagerAdapter:
bir ParçaonCreateView
sonra
onStart
geçmesi için tamamen normaldir
public class MyPagerAdapter extends FragmentPagerAdapter {
private final List fragments;
public MyPagerAdapter(FragmentManager fm, List list_fragments) {
super(fm);
this.fragments = list_fragments;
}
@Override
public Fragment getItem(int position) {
return (Fragment) fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
Böylece, ofset normaldir, ancak görmeden önce (veya görünüm sırasında) "onStart" veya "onCreateView" veya "onResume" juste aramasını nasıl zorlayabilirim? Bir öğeyi seçerken Fragment1 içinde bir ListView kullanıyorum, Fragment2 görüntülenir ama onun "onStart"/"onCreateView"/"onResume" olarak adlandırılır ... Güncelleştirmek istiyorum – bzhWarrior
Bunlar için yaşam döngüsü olayları fragmanı. Başlangıç etkinlikleri her seferinde çağrılır, işletim sistemi tarafından geri getirilen bellek nedeniyle sona eren yaşam döngüsü olaylarının bir kısmı aranamaz. – TronicZomB