在布局文件ViewPager标签中直接放置三个fragment的问题

azev 2014-04-28 11:28:06
在布局文件ViewPager标签中直接放置三个fragment
请问大家有这样做过的吗?
查了下也试了下,要求是ViewPager所在的Activity必需是继承FragmentActivity(项目的sdk是2.2的,使用了支持包)
而且在activity中还是要写一个Adapter类来给ViewPager绑定.
但是问题就出来了
报错是
java.lang.IllegalStateException: Can't change container ID of fragment FragmentIndex{b4fbded8 #0 id=0x7f090005 android:switcher:2131296260:0}: was 2131296261 now 2131296260

怀疑是getItem或instantiateItem中出的问题.
布局文件


<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/rdogNav"
android:background="#D3E2E2"
android:flipInterval="30"
android:persistentDrawingCache="animation" >

<fragment
android:id="@+id/fragIndex"
android:name="com.shr.demo.FragmentIndex"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<fragment
android:id="@+id/fragHistory"
android:name="com.shr.demo.FragmentHistory"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<fragment
android:id="@+id/fragAbout"
android:name="com.shr.demo.FragmentAbout"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</android.support.v4.view.ViewPager>



后台代码


public class MainFragmentPagerAdapter extends FragmentPagerAdapter
{
// private ArrayList<Fragment> fragments;

FragmentManager fmngr;
public MainFragmentPagerAdapter(FragmentManager fm)
{
super(fm);
fmngr = fm;
}

/*
* public MainFragmentPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments)
* {
* super(fm);
* this.fragments = fragments;
* }
*/
@Override
public Fragment getItem(int pos)
{
int resId = 0;
switch (pos)
{
case 0:
resId = R.id.fragIndex;
break;
case 1:
resId = R.id.fragHistory;
break;
case 2:
resId = R.id.fragAbout;
break;
}

return fmngr.findFragmentById(resId);
}

/**/
@Override
public Object instantiateItem(View collection, int position)
{
return getItem(position);
}


@Override
public int getCount()
{
return 3;
}

@Override
public int getItemPosition(Object object)
{
return super.getItemPosition(object);
}
}
...全文
485 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq2007小兵 2014-08-17
  • 打赏
  • 举报
回复
我也遇到啦,求大神解决的方法
NSMutableArray 2014-07-07
  • 打赏
  • 举报
回复
帮顶,我也碰到这样的问题,求大神来拯救啊!
zhangshenqiu 2014-07-02
  • 打赏
  • 举报
回复
问下这个怎么解决的
as10ve 2014-05-24
  • 打赏
  • 举报
回复
我也是这个问题,请问怎么解决呢?
Birds2018 2014-04-28
  • 打赏
  • 举报
回复
这样做到没 试过,还是用PagerAdapter加进去比较好。
逍遥笑 2014-04-28
  • 打赏
  • 举报
回复
你这样就太麻烦了撒,直接使用V4包里面的viewpaper就可以了,你可以看看那个例子,直接在代码中实现,只需要将fragment实例化就可以了,你切换的时候,会自动切换的。

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧