5

我有一个ListFragment取决于托管Activity的正确初始化。第一次运行时,它加载正常。一旦我改变方向,我的应用程序就会崩溃。从堆栈跟踪中我可以看到不是我试图Fragment过早地添加,而是 Android 试图恢复Fragment.

我已经setRetainInstance(false)设置了onStart方法,但找不到任何方法来禁用Fragment方向更改后的恢复。有任何想法吗?我需要Fragment在我的应用程序被销毁之前删除吗?

编辑:我最终延迟初始化列表,直到活动准备好。在设置适配器之前,Android 会方便地显示“正在加载”消息。

4

2 回答 2

1

我最终延迟了初始化列表,直到 Activity 准备好。在设置适配器之前,Android 会方便地显示“正在加载”消息。

于 2011-03-20T16:13:24.843 回答
0

我有一个 ListFragment,它依赖于托管 Activity 来正确初始化。

这可能是你的困难所在。

从堆栈跟踪中我可以看到不是我试图过早地添加片段,而是 Android 试图恢复片段。

正确的。

有任何想法吗?

我将专注于正确处理配置更改。在onSaveInstanceState()Fragment 和onRetainNonConfigurationInstance(), getLastNonConfigurationInstance()(both on Activity) 和onAttach()(on your Fragment) 的组合之间,您应该能够将旧 Fragment 中的任何内容传递给新 Fragment 而不会崩溃。对于配置更改,不要依赖“托管活动正确初始化”。

于 2011-03-17T21:41:12.653 回答