然而,findFragmentByTag()再次返回null

时间:2017-05-05 00:49:15

标签: android android-fragments

我在findFragmentByTag()返回null的问题上阅读了无数的SO文章,几天之后,我仍然无法让它工作。所以我听说要发表我自己的问题。

我有一个容器和三个碎片。我希望能够从A - > B - > C - > A - >滑动/甩动等或向后。也就是说,向左滑动或向右滑动以循环通过碎片面板 我完成了所有这些工作。但我的问题是,一旦我从A回到A完整循环,我与TextView字段的所有连接都不再起作用(这些片段中有许多实时更新文本字段)。那就是更新不再存在,我再也看不到字段的变化了;我可以protected void Application_Start() { GlobalConfiguration.Configure(WebApiConfig.Register); } 到某个字段,但新值不再显示。当片段显示时,它不再有任何textview更新。好像片段的原始实例已经丢失,并且显示的实例是一个新实例。 基于logcat结果,我认为这种情况正在发生。事实上,findFragmentByTag 总是返回null,因此代码每次刷卡都会创建新的片段。

我想保留每个实例(A,B和C),这样当我浏览片段时,它们会保持状态并且对它们的持续更新是可见的。 这是完整的代码文件:

setText("foo")

1 个答案:

答案 0 :(得分:2)

首先,您正在寻找片段,好像它们作为子片段附加到Fragment_ProgressBar,所有片段仍由活动片段管理器管理,因此您正在寻找片段中的片段。错误的地方。

其次,每次在执行交易时调用FragmentTransaction.remove()FragmentTransaction.replace(),您都会从片段管理器中删除旧片段。

我还建议您添加/重新附加新片段并分离旧片段(片段已从UI中删除,但其状态仍由片段管理器主动管理)。