问题标签 [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.
android - 从 FragmentManager 泄漏 Fragment
我正在为 Fragment 泄漏而苦苦挣扎,但我不知道如何处理它:
我有一个带有两个按钮的 FragmentActivity(我正在使用支持 lib v4):前进和后退。Forth 按钮将片段添加到具有长动画的 backstack 中,并且 back 按钮从 backstack 中弹出片段。
第四按钮点击监听器的代码:
对于后退按钮单击侦听器:
当我在动画进行时按下后退按钮并旋转设备,然后在视觉上旋转后一切似乎都很好,但是之前的片段被泄露了。我可以通过在例如 Fragment 的 ctor 或 onSaveInstanceState() 中设置断点来判断。当它不应该时,它会在每次旋转时出现。
我究竟做错了什么?
编辑:这个问题仍然存在使用原生片段,Android 4.0.3
android - 我第一次加载我的活动时 FragmentTransaction.add() 无法正常工作
我正在处理每次用户单击列表中的产品时打开的产品详细信息页面。在页面中,我在顶部有一些产品图像,然后在图像下方有 3 个选项卡,在选项卡下方有一个片段容器,用于在选项卡之间切换。
问题:我第一次加载 Activity 我调用该showFragment(..)
方法,并fragment_container
用 InfoFragment 填充。当我然后单击另一个选项卡并再次调用该showFragment()
方法时,容器变为空白。有趣的是,当我返回列表并再次单击相同的产品时,它会infoFragment
像以前一样将其加载到容器中,但是当我单击选项卡时,它们会像黄油一样切换(没有问题)。任何人都知道出了什么问题?
这是我调用的方法,onCreate()
它在开始时显示 infoFragment:
当我单击不同的(第二个)选项卡时,我使用不同的参数调用相同的方法:
和showFragment(...)
方法:
容器的 XML:
我试过调试代码,它transaction.add(resId, fragment, tag)
在我切换选项卡时调用该方法,但容器变为空白。然后我关闭并再次启动详细信息页面,该方法被调用并显示内容...当我尝试使用另一种产品时,它不会显示片段,直到我返回并再次单击它
java - 替换未调用 onAttach、onCreate、onCreateView 等的活动中的片段
所以我在这里有这段代码,我正在创建一个新的片段并用另一个片段替换它。效果很好。但是我注意到在第一行调用了构造函数,但没有调用onAttach()
等onCreate()
。如果我取消注释第二行,它将无法正常工作,因为它updateItem(URL)
需要在 onCreate() 函数中启动的 webView。
将不胜感激任何帮助,以使其与未注释的第二行一起使用。
android - 在片段中显示 SimpleDialogFragment 消息警报
我有一个从 FragmentActivity 扩展的主要活动,如下所示:
有两个片段,像这样:
这是 CustomFragmentAdapter 类:
我正在使用这个库来显示一条警报消息:https ://github.com/inmite/android-styled-dialogs
为什么当我按下显示在 secondtab 片段中的正面或负面按钮时,什么都没有发生?
android - 按下后退按钮时进入上一个片段
我有一个片段类。在那个类中,我可以通过单击网格视图项转到另一个片段类。我怎样才能通过按后退按钮来到原来的班级。
例如:TheaterFragment 类 --->Gridview ---->在 gridview 中单击项目-----> TheaterDetailsFragment
我想按下 TheaterDetailsFragment 的后退按钮并再次来到 TheaterFragment 课程。
提前致谢
剧场片段类
剧院细节片段
android - NoSaveStateFrameLayout - 已经有一个父级
我正在尝试操作片段删除/添加/替换,当我尝试删除并再次添加相同的片段类(不是相同的实例)时,问题就开始了。
我清除了整个活动:
并添加片段的新实例:
这第一次效果很好,也适用于应用程序中的所有其他屏幕,但是,当我尝试重新创建屏幕时,例如再次调用此逻辑,删除所有片段,并添加这些片段的新实例,我得到以下错误:
现在这很奇怪,因为它只在片段中有 ViewPager 视图时发生,在所有其他情况下,到目前为止这个逻辑工作正常,奇怪的是抛出这个错误是因为NoSaveStateFrameLayout已经有一个父视图,而不是任何其他视图...
我试过这个:
但是经过短暂的调试后,我发现有多个NoSaveStateFrameLayout实例,并且我可以删除的实例与导致异常的实例不同。
知道如何解决吗?
android - android - 从活动调用完成会破坏托管片段吗?
我有一个托管“片段 B”的“活动 A”。请确认如果我调用 A.finish() 则“片段 B”会被销毁。片段 B 已经添加到片段管理器中。我意识到一个片段是一个子活动,但我想知道我是否必须告诉片段管理器在 Ondestroy 中释放片段还是全部处理好?
android - 主线程延迟后加载片段
我有一个 NavigationDrawer,它是一个左侧菜单,当我触摸此按钮中的一个按钮时,我会加载一个新片段,如下所示:
我有一个使用相机实例的片段,该片段的加载速度比另一个片段慢,如果我像其他片段一样加载相机片段,应用程序会冻结很慢的时间,所以我想在我的主要活动上添加一个进度条和加载相机片段时,我使用回调删除progressView。
为此,我会显示进度条并在延迟后加载片段:
相机片段在 2 秒后加载,工作正常。问题是,当我想加载一个新片段时,它仍然是屏幕上的相机片段,片段被替换为相机片段下方。如果我删除 Runnable 任务并且我像其他片段一样加载相机片段,那么我可以切换到其他片段。
我认为问题来自 Runnable 任务和片段管理器。
有任何想法吗 ?谢谢。
android - Android:使用 1 个活动的主/详细信息流(双窗格)
正如Android指南所报道的,双窗格可以通过两种方式实现:
- 多个片段,一个活动
- 多个片段,多个活动
我使用的是第一种情况(Android 指南只解释了第二种情况)。
这是7 英寸平板电脑上发生的情况:
- 从横向旋转到纵向:仅重新创建单窗格片段
- 从纵向旋转到横向:重新创建所有 3 个片段(单窗格、双窗格主、双窗格细节)
问题:为什么单窗格片段(我以编程方式创建,但使用布局中定义的 FrameLayout 作为容器)在双窗格上重新创建?
我在我的实施情况下报告:
/布局/activity_main.xml:
/layout-w900dp/activity_main.xml:
这是onCreate
主要活动:
android - NullPointerException getSupportFragmentManager() 与 Facebook onSessionStateChange
我正在使用Facebook SDK
进行 FB 登录。NullPointerException
有时我从 Facebook 登录返回时会随机收到一个。
NPE 在我的线上:
我的 FB 登录是一个单一的Fragment
. 当用户登录 FB 并成功时,它会更改Fragment
为另一个。为什么我会得到这个 NPE?
Stacktrace(不完整,但重要的行)