如何使用兼容包显示DialogFragment?

7

我尝试在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 3.0以下的设备中不能使用android.app.FragmentManager,因为它未包含在SDK中。

是否有任何方法可以使用兼容库来显示DialogFragment?我必须使用另一种方式来使用兼容库显示我的DialogFragment吗?

非常感谢您的帮助。 :)

2个回答

15

兼容性包是为那些在Android 3.0版本之前开发的人准备的。

FragmentManagerDialogFragment 类都存在于API级别11(即3.0)中。

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

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

5
使用 getSupportFragmentManager() 替换 getFragmentManager()。 - Tom

10

FragmentManagerDialogFragment存在于兼容库中,适用于SDK版本4及以上,请确保导入它们。

使用getSupportFragmentManager()获取兼容库 FragmentManager

按照DialogFragment文档中的说明显示对话框,传递兼容库版本的'FragmentManager'。

请注意,您还可以将DialogFragment视为Fragment并在事务的一部分使用add(...)replace(...)来“show”它,即不仅限于使用show(...)


1
add() 和 show() 之间的区别是什么? - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接