使用了recyclerview的fragment嵌套viewpager的问题

lacuscylin 2016-03-02 12:40:26
public class Main_Frag1 extends Fragment {
public static Main_Frag1 newInstance(Context context,Bundle bundle) {
Main_Frag1 newFragment = new Main_Frag1();
newFragment.setArguments(bundle);
return newFragment;
}

private RecyclerView re;

@Override
public View onCreateView(LayoutInflater inflater,ViewGroup parent,Bundle savedInstanceState)
{
View v=inflater.inflate(R.layout.recyclerview,parent,false);
re=(RecyclerView)v.findViewById(R.id.recyclerview);
return v;
}

@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
re.setLayoutManager(new LinearLayoutManager(re.getContext()));
re.setHasFixedSize(true);
MyAdapter my=new MyAdapter();
re.setAdapter(my);
}

class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> // Recyclerview的MyAdapter
{

private ViewPager mvp;
private List<Fragment> lists=new ArrayList<>();

public MyAdapter()
{

}

public class ViewHolder extends RecyclerView.ViewHolder
{
public ViewHolder(View view)
{
super(view);
mvp=(ViewPager)view.findViewById(R.id.main_viewpager);
}
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewgroup,int viewType)
{
View view=LayoutInflater.from(viewgroup.getContext()).inflate(R.layout.main_activity_frag1, viewgroup, false);
ViewHolder vh=new ViewHolder(view);
return vh;
}

@Override
public void onBindViewHolder(ViewHolder viewholder,int position) //再一次加载的时候
{
Fragment view1=new View1();
Fragment view2=new View2();
lists.add(view1);
lists.add(view2);

mvp.setOffscreenPageLimit(3);
FragAdapter fragAdapter=new FragAdapter(getChildFragmentManager(),lists);
mvp.setAdapter(fragAdapter);
}


@Override
public int getItemCount()
{
return 1;
}

class FragAdapter extends FragmentPagerAdapter //FragAdapter类
{
private List<Fragment> lists;
public FragAdapter(FragmentManager fm,List<Fragment> list)
{
super(fm);
lists=list;
}

public Fragment getItem(int position)
{
return lists.get(position);
}


public int getCount()
{
return lists.size();
}
} // FragAdapter类
}

}

我在fragment里用了recyclerview,这时是没问题的,然后我就在布局文件里加了viewpager,再在recyclerview里嵌套viewpager,viewpager自己又加载两个fragment,运行的时候,刚开始加载这个fragment的时候是没问题的,然后就滑去了其他的fragment(最外层的这个fragment Main_Frag1)是在tablayout里的,这个tablayout里有6个fragment,当我再滑回Main_Frag1时,就崩溃了,
出现了 java.lang.IllegalArgumentException: No view found for id 0x7f0c006b (com.test_bilibili:id/main_viewpager) for fragment View1{6aa8e7b #0 id=0x7f0c006b android:switcher:2131492971:0} 这个错误

请问各位大这个问题应该如何解决?
...全文
1482 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_32164565 2016-09-05
  • 打赏
  • 举报
回复
我也有遇到这个问题, 网上有挺多的解决方案, 诸如什么用ChildFragmentManager, 什么在onDestroy的时候反射将manager置空的, 可是都不行... 我直接把FragmentPagerAdapter换成了PagerAdapter, 用View替换了Fragment...就可以了 同求大神解答
lukang423 2016-03-02
  • 打赏
  • 举报
回复
我也遇到了类似的问题,帮顶

80,359

社区成员

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

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