当前位置: 首页 > 知识库问答 >
问题:

FragmentManager返回视图时已在执行事务

丘向荣
2023-03-14

我有一个视图,它具有激活viewpager的表格布局,当查看页面时,它工作正常,但如果我单击该视图上的某个项目,然后返回到过去的屏幕,我会得到:

Java.Lang.IllegalStateException:FragmentManager已经在执行事务。

public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    CurrentActivity = Activity;

    var view = inflater.Inflate(Resource.Layout.fragment_directory, null);

    _tabLayout = view.FindViewById<TabLayout>(Resource.Id.directory_tabs);
    _viewPager = view.FindViewById<ViewPager>(Resource.Id.directory_pager);

    SetTabLayout();
    SetViewPager();

    return view;
}

private void SetTabLayout()
{
    var userTab = _tabLayout.NewTab();
    userTab.SetText("Users");

    var orgUnitsTab = _tabLayout.NewTab();
    orgUnitsTab.SetText("Organizations");

    _tabLayout.AddTab(userTab);
    _tabLayout.AddTab(orgUnitsTab);
    _tabLayout.TabGravity = TabLayout.GravityFill;
}

private void SetViewPager()
{
    var pagerAdapter = new DirectoryPagerAdapter(FragmentManager, _tabLayout.TabCount);

    _viewPager.Adapter = pagerAdapter;
    _viewPager.AddOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(_tabLayout));
}

不确定这是否有所不同,但当我离开这个视图时,我从一个片段变成了一个活动。

共有1个答案

尉迟宇定
2023-03-14

如果你遇到这个问题,我发现一个SO答案很好地回答了它。

最重要的是,我应该使用ChildFragmentManager而不是FragmentManager

 类似资料:
  • 第二个片段包含一个android.support.v4.view.ViewPager和选项卡。在Resume中,我们按照如下方式初始化它 问题是android会抛出 IllegalStateException:FragmentManager已经在执行事务 该数据显示是否已删除。有没有另一种方法可以避免这个问题? 在生命周期中,片段事务何时完成,以便我可以等待设置寻呼机?

  • 我最近发现了一个项目,我在一段时间以前正在进行的一个项目中更新了依赖项,与此事件相关,我将FireStore的依赖项()从17.1.5更新到了最新的18.2.0。因为这次更新,现在我的app突然抛出如下错误: IllegalStateException:FragmentManager已经在执行事务 在片段的方法中调用时。(由于错误是关于的,我认为这可能是相关的) 具体代码如下: 当我将依赖关系恢复

  • 我正在使用Spring boot来渲染页面。我也使用了叶子。但是我在从浏览器调用它时得到了下面提供的异常。 我已经编写了视图解析器类,当我使用为此。 和我在应用程序中提到的一样。yml也是。应用yml是 这是我的Controller类,负责渲染index.jspMainController.class

  • 代码activity_lastcall.xml: 代码lastcall.java: 代码AndroidManifest.xml: 我需要得到最后一个电话,并在TextView中写入号码和姓名。

  • 你能告诉我如何只对某些代码块运行事务吗?我有@Transactional的服务函数,并从它们调用存储库函数,在那里执行查询。但当查询失败时,由于事务必须结束,服务功能也随之失效。那么,当存储库函数失败时,如何返回null值呢?我需要在失败时捕获空值,并继续一些逻辑。我的代码: 我尝试了@davidxxx的答案,得到了这个错误:

  • 问题内容: 我正在尝试使用Python(3.4)MySQL模块通过以下代码在本地MySQL数据库上进行查询: 据我所知,连接成功,数据库由几行组成,但是查询始终返回none类型。 MySQL执行功能哪些实例返回None? 问题答案: 查询执行没有返回值。 您需要遵循的模式是: 或在python中: 还有一些数据库模块允许您使用for … in模式遍历游标,但对mysql进行三重检查。