问题标签 [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.
java - Android FragmentManager BackStackRecord.run 抛出 NullPointerException
使用 Fragments 时,有时会出现以下异常:
当run()
ofBackStackRecord
被调用execPendingTransactions()
时,当它试图从管理器中删除一个片段时,就会发生异常。
我似乎无法弄清楚究竟是什么原因造成的?我认为这与删除碎片时没有正确清理碎片的后台有关。
android - 在提交 FragmentTransaction 之前检查状态是否已保存
我有时会看到以下堆栈跟踪,用于在用户不查看活动时(保存状态后)可能发生的提交:
查看 Android 源代码,这完全有道理:
现在,我想知道是否有任何方法(除了将类变量存储在 on(Save/Restore)InstanceState 中)来检查片段是否会以不希望的状态提交,这样我可以存储事务以供以后使用在适当的时间提交。
android - 使用片段布局
我的 Android 应用程序要求某个流程有 7 个不同的屏幕。现在每个屏幕都有一个共同的顶部和底部。所以我选择创建一个FragmentActivity
和 7 个不同的Fragments
. 如何FragmentActivity
在运行时将片段插入?我在这里阅读了本教程,根据本教程,我的 mainFragmentActivity
应该具有以下布局:
它应该使用以下代码来替换片段:
我不明白的是以下行:
R.id.fragment_content
是 a FrameLayout
,这会将片段插入FrameLayout
还是什么?
android - Android将片段添加到FragmentStatePagerAdapter的末尾
我希望我的适配器在每次到达最后一页时添加另一个页面。这是我尝试使用的代码:
android-activity - 如何从当前片段中编写包含片段类的活动变量?
我有一个片段数量不定的活动。在片段内部,有一个变量需要在活动中访问才能正确调用活动栏的意图。但只有当前片段的变量在屏幕上。这是因为调用取决于您所在的片段。由于片段管理器一次创建三个片段无法写入从片段内部调用的变量,因为我不知道谁是最后一个写入变量的人。需要识别的片段是否被显示。我尝试从内部控制可见性,覆盖 setUserVisibleHint(boolean b) 并在为 true 但发生相同情况时写入变量。不保证当前片段是最后一次写入。我还尝试从活动中获取当前片段以调用片段方法并获取此变量。但是很难识别当前的片段。
但是有空指针异常。
android - 如何替换不同类型的 Fragment?
早上好。我正在开发一个应用程序,其中我有一个从活动扩展的主布局,在这个里面我有一个数据类型的片段,在我的例子中是 FragmentCover(它是一个类)。
在我的应用程序中,我按下一个按钮,我想将此片段布局更改为从片段扩展但类型不同的另一个布局,称为 SongList。
我的问题是我已经为 Cover 类定义了这个片段,当我更改时我没有任何问题,但是当我想获取视图并设置为我的类的一个变量时,songList = (ListView) getView().findViewById(R.id.songList);
它的功能是 null 并且它给出我的错误。
我把它放在这里我做什么。
布局
主类变化
问题不是变化,而是当我尝试创建 findViewById 时,可能是因为它没有加载与 FragmentSongList 关联的视图。
android - executePendingTransaction 的递归入口
简而言之,我有这样的结构:
我得到illegal state exception
:executePendingTransaction 的递归入口。我知道如何解决它,但我只是好奇为什么会发生这种情况。在我看来,它是这样的:
- 在活动的 onCreate 中,我创建了片段并将其传递给寻呼机的适配器。
FragmentManager 调用 fragment 的 onCreateView
我调用了 onViewCreated 并将我的片段再次传递给寻呼机的适配器,我想它会再次进入第 2 步。
android - Android Fragments - 多个选项卡/页面流,自定义 backstack
我遇到了片段的内存问题,我可以使用一些帮助来确定适当的路径。我不能使用简单的 backstack,因为应用程序需要保留用户在应用程序中采用的多个路径(并且用户可以来回跳转)。导航以这种方式处理片段:
我认为对我的情况有帮助的是暂时销毁片段的视图,然后在将片段放回视图时重新创建(而不是简单地从用户的视图中隐藏 UI)。从阅读 API 来看,这听起来不像是 hide 方法。有谁知道 FragmentTransaction/FragmentManager/Fragment 类是否有一些内置方法可以让我这样做?
我正在考虑的另一个选择是为每个片段创建自己的生命周期。我也探索过使用 tabhost,但它似乎不会解决内存问题。如果您有其他想法,我愿意接受。
谢谢大家,我很感激你的帮助。
android - Fragment 和 FragmentStatePagerAdapter 中带有 ViewPager 的片段导致异常(带有完整示例)
我有一个带有 ViewPager 的简单片段。
我正在使用最新的支持库 v4 rev18!
如果我第一次显示子片段,一切正常,如果我返回并再次显示,应用程序崩溃,但出现以下异常:
我有一个完整的示例显示,当发生以下异常时:
我能够以其他方式在子片段中使用 ViewPager,但如果我手动添加/删除子片段并在子片段中使用 FragmentStatePagerAdapter,我将无法使其工作......
以下示例应该可以工作,但它没有......我已经添加了一些解决一些问题的代码,但它并没有解决所有问题......
为了完整起见,我也添加了 xml 文件:
test_main.xml
test_subfragment.xml
view_pager.xml
android - 通过 ActionBar 调用 DialogFragment 时的行为不同
在测试以下步骤时,我的 DialogFragment 子类遇到了奇怪的、可能是特定于版本的行为:
(1) 打开对话框
(2) 使用 Home 键或Recent Apps 键离开应用程序
(3) 返回应用程序,对话框不再可见。它似乎在主要活动背后是短暂的、半透明的。
(4) 旋转设备,对话框重新出现。
此错误发生在我运行 Android 4.2.1 的 Asus TF700T 平板电脑上,而我运行 Android 4.1.2 的 Motorola Razr 手机(它有一个菜单键而不是溢出按钮)上不会出现此错误。此外,只有通过溢出菜单打开对话框时才会出现这种情况 - 通过 ActionBar 项打开的对话框不会出现此问题!最后,如果您在暂停活动之前更改方向,则不会出现此问题。
我发现了一个非常相似的问题,其中包括令人沮丧的评论,例如“这显然是一个 Android 错误”。有相关的错误报告。请说不是这样...
我对这个问题的解决方法是在 onResume() 中:我使用 findFragmentByTag 检查 FragmentManager 是否存在现有对话框;如果有任何不为空,我会解雇并重新展示它们。但我想了解这里到底发生了什么。