如何使用兼容包显示DialogFragment?

kun*_*nny 7 compatibility android fragment android-fragments

我试图在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?

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

Dav*_*unt 15

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

两者FragmentManagerDialogFragment类在API级别11存在(3.0)

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

DialogFragment df = new DialogFragment();
df.show(getSupportFragmentManager(), "MyDF");
Run Code Online (Sandbox Code Playgroud)

  • 用getSupportFragmentManager()替换getFragmentManager. (5认同)

PJL*_*PJL 10

FragmentManagerDialogFragment存在于compat的lib中SDK版本4及以上,请确保您导入这些的.

用户getSupportFragmentManager()获取FragmentManagercompat lib.

显示对话框,如DialogFragment文件传递compat lib版本的"FragmentManager"所述.

请注意,您也可以将DialogFragmenta Fragment和'show' 视为使用add(...)replace(...)作为交易的一部分,即您不仅限于使用show(...)