v4支持库是否在可用时使用新类?

Gia*_*nzi 8 android android-fragments android-dialogfragment android-support-library

我知道v4支持库可用于在旧的Android版本中实现已经在更新版本中引入的东西,例如Fragments ..如果我们实现一个使用v4支持库来显示Dialog Fragments的应用程序,例如,当它在ICS上运行时它是否使用最新的代码(即原始和新的片段)还是仍然使用每个Android版本的支持代码?

有没有办法在同一个应用程序中使用android.app.Fragment类和android.support.v4.app.Fragment类,如果我们在启用Fragment的Android 版本上运行,或者在导入v4支持库时我们只需要使用支持类,那么在运行时会有区别吗?

也许我错了,但是在我最近的平台上运行时,我似乎不想使用最新的代码.

坚持Dialog Fragment案例,您认为哪个更好:

1)使用v4支持库,即在所有Android版本上使用兼容性代码

2)android.app.DialogFragment在API级别11或更高级别上运行时使用new ,并在API级别<11上运行时使用该类的弃用showDialogonCreateDialog方法Activity

正如我已经说过的那样,最好的一个恕我直言将是以下,但(如果我错了,请纠正我)这不是一个可能的解决方案:

3)android.app.DialogFragment在API级别11或更高级别上运行时使用新类,并android.support.v4.app.DialogFragment在API级别<11上运行时使用该类

如果我有点混乱,我很抱歉,我希望这个问题很清楚......

Ang*_*elo 11

当您在项目中使用android支持libary时,即使设备具有Android的兼容API级别,因此它不需要使用兼容性库,它仍将使用compatibilitybillity库中的方法.

编辑

浏览它所声明的Android支持库v4代码(在android.support.v4.app.Fragment课堂评论中):

静态库支持框架的android.app.Fragment版本.用于编写在Android 3.0之前的平台上运行的应用程序.在Android 3.0或更高版本上运行时,仍然使用此实现; 它不会尝试切换到框架的实现.有关类概述,请参阅框架SDK文档.

链接在这里.


Com*_*are 6

例如,如果我们实现一个使用v4支持库来显示Dialog Fragments的应用程序,它在ICS上运行时是否使用最新代码(即原始和更新的片段),或者是否仍然使用每个Android版本的支持代码?

特别是对于片段,它总是使用自己的反向端口.在其他情况下,它可以传递到可用的本机实现.

有没有办法在同一个应用程序中使用android.app.Fragment类和android.support.v4.app.Fragment类,如果我们在启用Fragment的Android版本上运行,或者我们需要在运行时区分在导入v4支持库时仅使用支持类?

我会坚持支持课程.通过采用替代方法,您将增加大量额外的工作,从而没有真正的好处.

也许我错了,但在最近的平台上运行时,我似乎不想使用最新的代码.

欢迎您的意见.对于像碎片这样的大型子系统,恕我直言的成本将超过其优势.

坚持Dialog Fragment案例,您认为哪个更好:

最好的选择是根本不使用DialogFragment,而是找到一种方法来实现你想要的而不使用对话框.

在您提供的三个选项中,暂时使用选项#1.一旦您认为可以放弃对Android 2.x的支持,您就可以切换到在整个应用中使用本机片段.