Android ViewPager';碎片消失了
我正在将Android ViewPager';碎片消失了,android,android-viewpager,navigation-drawer,android-nested-fragment,Android,Android Viewpager,Navigation Drawer,Android Nested Fragment,我正在将DrawerLayout与ViewPagerIndicator一起使用,但是最后一个不能与DrawerLayout一起正常工作。打开应用程序后,viewpager将正确显示,但在抽屉布局中更改片段后,viewpager的片段将消失 这是我的碎片管理器: ViewPager中的第二个片段和第四个片段在那里,它们没有消失,而第一个、第三个和第五个片段消失了。我的代码出了什么问题 这是我的片段: 将getChildFragmentManager()与GoogleMusicAdapter一起使用
DrawerLayout
与ViewPagerIndicator
一起使用,但是最后一个不能与DrawerLayout
一起正常工作。打开应用程序后,viewpager将正确显示,但在抽屉布局中更改片段后,viewpager的片段将消失
这是我的碎片管理器:
ViewPager中的第二个片段和第四个片段在那里,它们没有消失,而第一个、第三个和第五个片段消失了。我的代码出了什么问题
这是我的片段:
将
getChildFragmentManager()
与GoogleMusicAdapter
一起使用:
adapter = new GoogleMusicAdapter(getChildFragmentManager());
因为
ViewPager
使用的片段是嵌套的片段。@KingOmar确保您的项目中有最新版本的支持库。是的,我在谷歌上搜索了它,刚刚检查过。我有最新版本的支持库。@KingOmar我怀疑您是否有最新版本。在片段的onCreateView()
回调中创建适配器,以便该方法可用。正如测试一样,更新sdk并再次复制jar。我发现该方法在扩展Fragment
时可用,而不是SherlockFragment
@KingOmar aSherlockFragment
扩展Fragment
时可用,因此该方法在SherlockFragment
中也可用。
@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;
}
}
adapter = new GoogleMusicAdapter(getChildFragmentManager());