J'utilise DrawerLayout
con ViewPagerIndicator
Cependant, ce dernier ne fonctionnera pas correctement avec le système de gestion de l'information. DrawerLayout
. Lorsque j'ouvre l'application, le viewpager s'affiche correctement mais dès que je modifie les fragments dans le DrawerLayout, les fragments du ViewPager disparaissent.
Voici mon FragmentManager :
FragmentManager fragmentManager = getSupportFragmentManager();
switch (arg2) {
case 0:
contentFragment = new Lebanon();
break;
}
fragmentManager.beginTransaction()
.replace(R.id.content_frame, contentFragment).commit();
Le deuxième fragment et le quatrième dans le ViewPager sont là et ils n'ont pas disparu, alors que le premier, le troisième et le cinquième disparaissent. Qu'est-ce qui ne va pas dans mon code ?
Voici mon fragment :
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
viewta = inflater.inflate(R.layout.simple_tabs, container, false);
SamsungLB = com.androidarabia.lebanon.SamsungLB.newInstance();
HTCLB = com.androidarabia.lebanon.HTCLB.newInstance();
LGLB = com.androidarabia.lebanon.LGLB.newInstance();
SonyLB = com.androidarabia.lebanon.SonyLB.newInstance();
SearchLB = com.androidarabia.lebanon.SearchLB.newInstance();
this.getSherlockActivity().getSupportActionBar()
.setHomeButtonEnabled(true);
prefs = this.getSherlockActivity().getSharedPreferences(prefName,
Context.MODE_PRIVATE);
adapter = new GoogleMusicAdapter(this.getSherlockActivity()
.getSupportFragmentManager());
pager = (ViewPager) viewta.findViewById(R.id.pager);
pager.setPageTransformer(true, new ZoomOutPageTransformer());
indicator = (TabPageIndicator) viewta.findViewById(R.id.indicator);
pager.setCurrentItem(0);
pager.setAdapter(adapter);
pager.setOffscreenPageLimit(4);
indicator.setViewPager(pager);
return viewta;
}
private void addtabs(ViewPager pager2) {
// TODO Auto-generated method stub
pager2.setAdapter(adapter);
pager2.setOffscreenPageLimit(4);
indicator.setViewPager(pager);
}
class GoogleMusicAdapter extends FragmentStatePagerAdapter {
public GoogleMusicAdapter(FragmentManager fm) {
super(fm);
notifyDataSetChanged();
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return SamsungLB;
case 1:
return HTCLB;
case 2:
return LGLB;
case 3:
return SonyLB;
case 4:
return SearchLB;
}
notifyDataSetChanged();
return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
}
@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length].toUpperCase();
}
@Override
public int getCount() {
return CONTENT.length;
}
}