7

我尝试在 3.0 设备上使用 DialogFragment,它不支持 SDK 级别的 Fragment 或 DialogFragment。

所以,我决定使用支持 Fragment 的 Android 兼容库。然后我创建了一个扩展android.support.v4.app.DialogFragment
的 DialogFragment 类。

但是.....当我尝试使用 DialogFragment.show() 显示我的 DialogFragment 时,我通知 show(FragmentManager, String) 接受第一个参数为android.app.FragmentManager,而不是android.support.v4.app.FragmentManager

我认为 android.app.FragmentManager 不能在 Android 3.0 设备中使用,因为它不包含在 SDK 中。

有没有办法用兼容性库显示 DialogFragment?我是否必须使用另一种方式来显示带有兼容性库的 My DialogFragment?

任何帮助都感激不尽。:)

4

2 回答 2

15

兼容性包适用于在 3.0 之前的 Android 版本上开发的用户。

FragmentManager和DialogFragment类存在于 API 级别 11 (3.0)

在任何 Fragment 或 Activity 中,您应该能够执行以下操作以在屏幕中间显示一个小(空)对话框:

DialogFragment df = new DialogFragment();
df.show(getSupportFragmentManager(), "MyDF");
于 2011-07-19T12:43:15.800 回答
10

FragmentManager并且DialogFragment存在于 sdk 版本 4 及更高版本的兼容库中,请确保导入这些库。

用户getSupportFragmentManager()获取您FragmentManager的兼容库。

显示对话框,如DialogFragment传递“FragmentManager”的兼容库版本的文档中所述。

请注意,您也可以将其DialogFragment视为 aFragment并使用add(...)replace(...)作为交易的一部分将其“显示”,即您不仅限于使用show(...)

于 2011-07-19T12:57:33.997 回答