如何使用兼容包显示DialogFragment?

时间:2011-07-19 12:16:35

标签: android compatibility android-fragments fragment

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

所以,我决定使用Android兼容库,它支持Fragment 然后我创建了一个扩展 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?

任何帮助将不胜感激。 :)

2 个答案:

答案 0 :(得分:15)

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

API级别11(3.0)中存在FragmentManagerDialogFragment

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

DialogFragment df = new DialogFragment();
df.show(getSupportFragmentManager(), "MyDF");

答案 1 :(得分:10)

对于sdk版本4及更高版本的compat lib中存在

FragmentManagerDialogFragment,请确保导入这些。

用户getSupportFragmentManager()获取compat lib的FragmentManager

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

请注意,您还可以将DialogFragment视为Fragment,并使用add(...)replace(...)作为交易的一部分'显示',即您不受限制仅使用show(...)