问题标签 [fragmentmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1380 浏览

android - 从 FragmentManager 泄漏 Fragment

我正在为 Fragment 泄漏而苦苦挣扎,但我不知道如何处理它:

我有一个带有两个按钮的 FragmentActivity(我正在使用支持 lib v4):前进和后退。Forth 按钮将片段添加到具有长动画的 backstack 中,并且 back 按钮从 backstack 中弹出片段。

第四按钮点击监听器的代码:

对于后退按钮单击侦听器:

当我在动画进行时按下后退按钮并旋转设备,然后在视觉上旋转后一切似乎都很好,但是之前的片段被泄露了。我可以通过在例如 Fragment 的 ctor 或 onSaveInstanceState() 中设置断点来判断。当它不应该时,它会在每次旋转时出现。

我究竟做错了什么?

编辑:这个问题仍然存在使用原生片段,Android 4.0.3

0 投票
0 回答
1878 浏览

android - 我第一次加载我的活动时 FragmentTransaction.add() 无法正常工作

我正在处理每次用户单击列表中的产品时打开的产品详细信息页面。在页面中,我在顶部有一些产品图像,然后在图像下方有 3 个选项卡,在选项卡下方有一个片段容器,用于在选项卡之间切换。

问题:我第一次加载 Activity 我调用该showFragment(..)方法,并fragment_container用 InfoFragment 填充。当我然后单击另一个选项卡并再次调用该showFragment()方法时,容器变为空白。有趣的是,当我返回列表并再次单击相同的产品时,它会infoFragment像以前一样将其加载到容器中,但是当我单击选项卡时,它们会像黄油一样切换(没有问题)。任何人都知道出了什么问题?

这是我调用的方法,onCreate()它在开始时显示 infoFragment:

当我单击不同的(第二个)选项卡时,我使用不同的参数调用相同的方法:

showFragment(...)方法:

容器的 XML:

我试过调试代码,它transaction.add(resId, fragment, tag)在我切换选项卡时调用该方法,但容器变为空白。然后我关闭并再次启动详细信息页面,该方法被调用并显示内容...当我尝试使用另一种产品时,它不会显示片段,直到我返回并再次单击它

0 投票
3 回答
7049 浏览

java - 替换未调用 onAttach、onCreate、onCreateView 等的活动中的片段

所以我在这里有这段代码,我正在创建一个新的片段并用另一个片段替换它。效果很好。但是我注意到在第一行调用了构造函数,但没有调用onAttach()onCreate()。如果我取消注释第二行,它将无法正常工作,因为它updateItem(URL)需要在 onCreate() 函数中启动的 webView。

将不胜感激任何帮助,以使其与未注释的第二行一起使用。

0 投票
2 回答
666 浏览

android - 在片段中显示 SimpleDialogFragment 消息警报

我有一个从 FragmentActivity 扩展的主要活动,如下所示:

有两个片段,像这样:

这是 CustomFragmentAdapter 类:

我正在使用这个库来显示一条警报消息:https ://github.com/inmite/android-styled-dialogs

为什么当我按下显示在 secondtab 片段中的正面或负面按钮时,什么都没有发生?

0 投票
2 回答
1212 浏览

android - 按下后退按钮时进入上一个片段

我有一个片段类。在那个类中,我可以通过单击网格视图项转到另一个片段类。我怎样才能通过按后退按钮来到原来的班级。

例如:TheaterFragment 类 --->Gridview ---->在 gridview 中单击项目-----> TheaterDetailsFragment

我想按下 TheaterDetailsFragment 的后退按钮并再次来到 TheaterFragment 课程。

提前致谢

剧场片段类

剧院细节片段

0 投票
1 回答
135 浏览

android - NoSaveStateFrameLayout - 已经有一个父级

我正在尝试操作片段删除/添加/替换,当我尝试删除并再次添加相同的片段类(不是相同的实例)时,问题就开始了。

我清除了整个活动:

并添加片段的新实例:

这第一次效果很好,也适用于应用程序中的所有其他屏幕,但是,当我尝试重新创建屏幕时,例如再次调用此逻辑,删除所有片段,并添加这些片段的新实例,我得到以下错误:

现在这很奇怪,因为它只在片段中有 ViewPager 视图时发生,在所有其他情况下,到目前为止这个逻辑工作正常,奇怪的是抛出这个错误是因为NoSaveStateFrameLayout已经有一个父视图,而不是任何其他视图...

我试过这个:

但是经过短暂的调试后,我发现有多个NoSaveStateFrameLayout实例,并且我可以删除的实例与导致异常的实例不同。

知道如何解决吗?

0 投票
3 回答
6934 浏览

android - android - 从活动调用完成会破坏托管片段吗?

我有一个托管“片段 B”的“活动 A”。请确认如果我调用 A.finish() 则“片段 B”会被销毁。片段 B 已经添加到片段管理器中。我意识到一个片段是一个子活动,但我想知道我是否必须告诉片段管理器在 Ondestroy 中释放片段还是全部处理好?

0 投票
1 回答
1257 浏览

android - 主线程延迟后加载片段

我有一个 NavigationDrawer,它是一个左侧菜单,当我触摸此按钮中的一个按钮时,我会加载一个新片段,如下所示:

我有一个使用相机实例的片段,该片段的加载速度比另一个片段慢,如果我像其他片段一样加载相机片段,应用程序会冻结很慢的时间,所以我想在我的主要活动上添加一个进度条和加载相机片段时,我使用回调删除progressView。

为此,我会显示进度条并在延迟后加载片段:

相机片段在 2 秒后加载,工作正常。问题是,当我想加载一个新片段时,它仍然是屏幕上的相机片段,片段被替换为相机片段下方。如果我删除 Runnable 任务并且我像其他片段一样加载相机片段,那么我可以切换到其他片段。

我认为问题来自 Runnable 任务和片段管理器。

有任何想法吗 ?谢谢。

0 投票
2 回答
7285 浏览

android - Android:使用 1 个活动的主/详细信息流(双窗格)

正如Android指南所报道的,双窗格可以通过两种方式实现:

  1. 多个片段,一个活动
  2. 多个片段,多个活动

我使用的是第一种情况(Android 指南只解释了第二种情况)。

这是7 英寸平板电脑上发生的情况:

  • 从横向旋转到纵向:仅重新创建单窗格片段
  • 从纵向旋转到横向:重新创建所有 3 个片段(单窗格、双窗格主、双窗格细节)

问题:为什么单窗格片段(我以编程方式创建,但使用布局中定义的 FrameLayout 作为容器)在双窗格上重新创建?

我在我的实施情况下报告:

/布局/activity_main.xml:

/layout-w900dp/activity_main.xml:

这是onCreate主要活动:

0 投票
1 回答
1216 浏览

android - NullPointerException getSupportFragmentManager() 与 Facebook onSessionStateChange

我正在使用Facebook SDK进行 FB 登录。NullPointerException有时我从 Facebook 登录返回时会随机收到一个。

NPE 在我的线上:

我的 FB 登录是一个单一的Fragment. 当用户登录 FB 并成功时,它会更改Fragment为另一个。为什么我会得到这个 NPE?

Stacktrace(不完整,但重要的行)