Fragments
开发。我的困惑是,我是否应该将其更改为使用Fragments
而不是Activities
。我想说的是,我在我的应用程序中只使用纵向方向,并且它是针对手机而建立的,而不是平板电脑。所以我的问题是,如果我改变整个应用程序的结构并使用Fragments
,会有什么好处。据我所知,只有当我们想要重用某些内容时才应该使用
Fragments
。欢迎任何建议。Fragments
开发。我的困惑是,我是否应该将其更改为使用Fragments
而不是Activities
。我想说的是,我在我的应用程序中只使用纵向方向,并且它是针对手机而建立的,而不是平板电脑。所以我的问题是,如果我改变整个应用程序的结构并使用Fragments
,会有什么好处。Fragments
。欢迎任何建议。Fragments
可以用于创建动态和多面板用户界面,因此非常适合拥有更多屏幕空间的平板电脑。当然,在手机上情况有所不同,您只有很小的空间可供使用,有时仅将一个Activity
适配到屏幕上可能就很困难,更不用说包含多个Fragments
了。
Fragments
非常适合动态界面,并有助于在平板电脑和手机之间实现兼容性。它们也能够比Activities
更好地相互通信,因此即使在仅使用手机的设置中使用它们也有明显的优势。(请参见FragmentsManager
以了解一些它们可用于的功能)Fragments
(跨平板电脑和手机):
Fragments
的灵活性,它可以在平板电脑上占据同一屏幕,并在手机上切换到更类似于Activity
的格式。正是这种功能赋予了Fragment
比Activity
更大的优势。Fragment
的解决方案在灵活性方面具有优势,但您最初的问题说明您只针对手机,并且仅处于纵向方向。
如果已经存在使用Activities
的应用程序,并且您对其解决方案感到满意并具有良好的可用性,则我认为没有理由切换到Fragments
(除非您正在寻找挑战或有一些空闲时间和喜欢尝试)。虽然存在优点,但是像添加Fragments这样的重大更改可能会引入错误到您的应用程序中,并影响用户体验(至少在短期内)。
从长远来看,如果您考虑将平板支持融入其中或想使用横向方向,则可能需要开始查看您可以通过Fragments
做些什么以改善体验,并将其与您当前的手机应用程序流程集成。
否则,您创建的当前解决方案将足以满足需求,只要您的客户群体接受良好,我认为没有理由进行更改。
当然,熟悉Fragment API对于未来的项目或者当前项目UI刷新时都没有坏处。值得指出的是,Fragment仅在Android 3.0(API级别11)及以上版本中被原生支持,如果要支持早期设备,需要安装你的安装包中的Android Support包。因此,如果你的应用程序针对2.x设备,建议采用基于Activity的方法,以保持简单和apk大小,除非升级到本地API级别(如Android 3.0+)。这是个人偏好,最终回答你的问题将取决于你的个人喜好。如果您未来不计划支持平板电脑,请将其保持原样。将应用程序转换为片段并没有任何好处。
如果您开始一个新的应用程序,则情况会有所不同。我建议从一开始就使用片段,以便在未来需要支持其他形态因素时更加灵活。请注意,此功能可在支持库中使用,因此您也可以在旧设备上使用它。
使用片段之间的交互比使用活动之间的交互更容易。
在活动的情况下:
startActivityForResult()
/onActivityResult()
;Parcelable
接口才能在活动之间传递;在片段的情况下:
FragmentManager
获取片段实例并在其上调用方法一样简单;Parcelable
; 此外,Fragment
实例比 Activity
实例更轻量级,需要更少的时间和资源来初始化/恢复。
总的来说,当您使用片段时,UI 组件之间的交互更加清晰、优雅、易于实现。
我刚刚完成了将我的应用程序转换为使用片段的工作,因为:
这些是使用片段的最有说服力的理由。
这可能需要更多的工作,但随着市场上出现越来越多的平板电脑并且快速采用率,也许考虑支持具有更好用户界面的平板电脑是值得的?
如果您真的不想这样做,并且没有使用高级视图进行视图分页的要求,那么过度设计项目以使其使用片段是没有意义的。您可以争辩说您可能会学习它们,但当您在下一个项目中使用它们时,您可以在那时学习(这就是我所做的,效果很好)。
就您的应用程序或任何应用程序而言,最好使用片段,这不会对您的应用程序造成任何损害,并且在进一步扩展到平板电脑时也可以减轻您的负担。因此,最好从在应用程序中使用片段开始。