7

私はDrawerLayoutViewPagerIndicatorを使用していますが、最後はDrawerLayoutで正しく機能しません。一度アプリケーションを開くと、ビューページが正しく表示されますが、DrawerLayoutのフラグメントを変更すると、ViewPagerのフラグメントは消えます。第1、第3及び第五は消えますが、ViewPagerのフラグメントが消える

FragmentManager fragmentManager = getSupportFragmentManager(); 
switch (arg2) { 
    case 0: 
     contentFragment = new Lebanon(); 
     break; 
} 
fragmentManager.beginTransaction() 
     .replace(R.id.content_frame, contentFragment).commit(); 

ViewPagerにおける第2のフラグメントおよび第四があり、彼らは消えませんでした:

は、ここに私のFragmentManagerです。私のコードで何が間違っていますか?

ここに私の断片です:GoogleMusicAdapter

@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; 
    } 

} 

答えて

15

使用getChildFragmentManager()

adapter = new GoogleMusicAdapter(getChildFragmentManager()); 

ViewPagerで使用されるフラグメントは、ネストされた断片であるため。

+1

このような方法はありません... –

+0

@KingOmarプロジェクトにサポートライブラリの最新バージョンがあることを確認してください。 – Luksprog

+0

ええ、私はそれをgoogledとちょうどチェックした。私はサポートライブラリの最新バージョンを持っています。 –

関連する問題