为了账号安全,请及时绑定邮箱和手机立即绑定

显示片段内的片段查看器

显示片段内的片段查看器

牛魔王的故事 2019-11-11 11:02:30
我有一个包含ViewPager的片段。ViewPager与包含一组片段的适配器关联。加载父片段后,我IllegalStateException看到一条消息:java.lang.IllegalStateException: Recursive entry to executePendingTransactions。一些研究使我得出这样的结论:系统无法显示另一个片段中的片段,但是似乎有迹象表明,使用ViewPager可以完全做到这一点(ViewPager中的错误与其他片段一起使用))。实际上,如果我向父片段添加一个按钮,该按钮mPager.setAdapter(mAdapter)在按下时会调用ViewPager,则ViewPager将成功加载。这是不理想的。然后,问题必须与片段生命周期有关。因此,我的问题是:还有其他人找到解决此问题的方法吗?有什么方法可以将ViewPager上的适配器的设置延迟到片段事务之后?这是我的父片段代码:    @Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {    mView = inflater.inflate(R.layout.team_card_master, container, false);    mViewPager = (ViewPager)mView.findViewById(R.id.team_card_master_view_pager);    final Button button = (Button)mView.findViewById(R.id.load_viewpager_button);    button.setOnClickListener(new OnClickListener() {        @Override        public void onClick(View v) {            mViewPager.setAdapter(mAdapter);            button.setVisibility(View.GONE);        }    });    mAdapter = new ViewPagerAdapter(getFragmentManager()); //     mViewPager.setAdapter(mAdapter);    return mView;}和适配器:public class ViewPagerAdapter extends FragmentPagerAdapter {    public ViewPagerAdapter(FragmentManager fm) {        super(fm);    }    @Override    public int getCount() {        if (mCursor == null) return 0;        else return mCursor.getCount();    }    @Override    public Fragment getItem(int position) {        Bundle b = createBundle(position, mCursor);        return TeamCardFragment.newInstance(b);    }}
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 439 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信