我有一个应用程序,包括在选项卡模式下使用ActionBarSherlock.我有5个选项卡,每个选项卡的内容使用片段处理.但是对于tab2,我有一个片段,其xml文件包含一个ViewPager元素,该元素又包含一些片段页面.当我最初启动应用程序的应用程序时,我能够在选项卡之间切换没有问题,但是当我第二次按下tab2时,我得到上面提到的错误.主要活动如下:
public class MainActivity extends SherlockFragmentActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
ActionBar.Tab tab1 = actionBar.newTab().setText("Tab1");
ActionBar.Tab tab3 = actionBar.newTab().setText("Tab3");
ActionBar.Tab tab2 = actionBar.newTab().setText("Tab2");
ActionBar.Tab tab4 = actionBar.newTab().setText("Tab4");
ActionBar.Tab tab5 = actionBar.newTab().setText("Tab5");
Fragment fragment1 = new Tab1();
Fragment fragment3 = new Tab3();
Fragment fragment2 = new Tab2();
Fragment fragment5 = new Tab5();
Fragment fragment4 = new Tab4();
tab1.setTabListener(new MyTabListener(fragment1));
tab3.setTabListener(new MyTabListener(fragment3));
tab2.setTabListener(new MyTabListener(fragment2));
tab5.setTabListener(new MyTabListener(fragment5));
tab4.setTabListener(new MyTabListener(fragment4));
actionBar.addTab(tab1);
actionBar.addTab(tab2);
actionBar.addTab(tab3);
actionBar.addTab(tab4);
actionBar.addTab(tab5);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); …
Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager actionbarsherlock android-nested-fragment
我遇到了困扰我好几天的问题.
ViewPager
主要活动中有一个持有3 Fragment
秒作为标签片段.在第一个片段中有一个ListView
包含一些视图,哪个是最重要的视图,另一个视图ViewPager
.我想在子中保存一些照片ViewPager
,并在这里使用更多片段.
现在有麻烦:
当第一个 Fragment
停止时(父节点中的第三个片段在ViewPager
屏幕上显示)并恢复(用户切换到第二个片段),应用程序崩溃,调试器说:
java.lang.IllegalArgumentException: No view found for id 0x7f05008b (com.example.viewpager:id/sub_viewpager) for fragment ScreenSlidePageFragment
Run Code Online (Sandbox Code Playgroud)
我已经使用了,getChildFragmentManager()
因为这是嵌套片段的情况.
以下是与父ViewPager中第一个片段对应的列表适配器的关键代码:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
switch (type) {
case TYPE_BANNER:
if (convertView == null) {
convertView = mBannerView.getBannerView(parent);
}
mBannerView.update(convertView);
break;
case TYPE_ITEM:
break;
}
return convertView;
}
Run Code Online (Sandbox Code Playgroud)
这是代码mBannerView …
android ×2