【发布时间】:2016-08-29 04:52:35
【问题描述】:
在我的父 Fragment 的 onCreateView 方法中,我调用 Child Fragment Manager 将 Fragment 插入到布局中。这个子片段包含一些 FloatingActionButtons。
提交事务后,我会检查底层列表的内容(为 RecyclerView 提供支持),并根据是否存在任何值,隐藏/取消隐藏一些 FloatingActionButton。
但是它告诉我按钮是空的!提交 Fragment 事务是否不会首先调用其所有典型的生命周期事件?有没有办法强迫它等待?有没有更好的做法?
【问题讨论】:
-
我相信您也可以在片段管理器上调用
executePendingTransactions(),片段的onCreateView()将作为其中的一部分被调用。并不是说这是documentation 中警告的最佳方式,但它可能是一种选择。 -
@GeorgeMulligan 这似乎对我不起作用
-
这真是令人沮丧,在Android中做这么简单的事情应该不难
-
我从未尝试过使用子片段,但它适用于为我添加到活动中的片段。但是,我不确定
onCreateView()是否保证被称为其中的一部分,或者它是否恰好发生在我的情况下,或者您尝试使用子片段执行此操作的事实是否有所不同。无论如何,您似乎应该能够修改 Jeffrey Blattman 的答案以满足您的需求。如果某些事情不起作用,您可能应该在您的问题中添加一些代码,说明您当前如何尝试这样做,以确保其他事情没有错。 -
我看不出这个答案与我正在尝试做的事情有什么关系。如果父片段中的列表为空/非空,我要做的就是修改子片段中某些按钮的可见性。就是它。
标签: android android-fragments fragmenttransaction fragmentmanager