Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 对在应用程序中使用片段感到困惑吗_Android_Android Fragments - Fatal编程技术网

Android 对在应用程序中使用片段感到困惑吗

Android 对在应用程序中使用片段感到困惑吗,android,android-fragments,Android,Android Fragments,我有一个成熟的应用程序,它不是使用片段开发的。我的困惑是,我应该将其更改为具有片段,而不是活动。我想说的是,我在应用程序中只使用了纵向定位,它是构建的,只考虑手机,而不是平板电脑。所以我的问题是,如果我改变应用程序的整体结构并使用片段,会有什么好处吗 据我所知,只有当我们想重用某些东西时,才应该使用片段。任何建议都将不胜感激。如果您不打算在将来支持平板电脑,请保持原样。当你将你的应用程序转换成碎片时,你将一无所获 如果启动新的应用程序,情况就不同了。我会从一开始就使用片段,以便在将来需要支持其他

我有一个成熟的应用程序,它不是使用
片段开发的。我的困惑是,我应该将其更改为具有
片段
,而不是
活动
。我想说的是,我在应用程序中只使用了纵向定位,它是构建的,只考虑手机,而不是平板电脑。所以我的问题是,如果我改变应用程序的整体结构并使用
片段
,会有什么好处吗


据我所知,只有当我们想重用某些东西时,才应该使用片段。任何建议都将不胜感激。

如果您不打算在将来支持平板电脑,请保持原样。当你将你的应用程序转换成碎片时,你将一无所获


如果启动新的应用程序,情况就不同了。我会从一开始就使用片段,以便在将来需要支持其他形式因素时更加灵活。请注意,支持库中提供了该功能,因此您也可以在较旧的设备上使用该功能。

片段可用于创建动态和多窗格用户界面,因此非常适合于屏幕空间大得多的平板电脑。当然,在手机上,情况有点不同,你可以玩的空间要小得多,有时只需要将一个
活动
安装到屏幕上,而不必担心包含多个
片段

片段
非常适合动态界面,有助于平板电脑和手机之间的兼容性。它们之间的沟通能力也比活动要好得多,因此即使在仅使用手机的设置中使用它们也有一定的优势。(请参见碎片管理器
,了解它们可用于的一些功能)

下图展示了一个使用示例(摘自Android开发者网站)

这说明了
片段的灵活性,它在平板电脑上可以占据相同的屏幕,在手机上切换到更像活动的格式。正是这种能力使得
片段
活动
具有这样的优势

因此,从灵活性的角度来看,切换到面向
片段
的解决方案显然有好处,但您最初的问题指出,您只针对手机,而且只针对纵向

拥有一个已经存在的带有
活动的应用程序
,只要它是一个您满意的解决方案,并且具有良好的可用性,我想说,没有理由切换到
片段
(除非您正在寻找挑战或有一些空闲时间,并且喜欢修补程序)。虽然存在优势,但剧烈的更改(如添加片段)可能会在应用程序中引入错误并影响用户体验(至少在短期内)

从长远来看,如果您曾考虑将平板电脑支持纳入考虑范围,或希望使用横向定位,那么最好开始研究如何使用
片段
来改善体验,并将其与手机应用程序的当前流程相结合

否则,您创建的当前解决方案就足够了,只要受到您客户群的欢迎,我看不出有任何理由进行更改

当然,对于将来的项目,或者是刷新当前项目的UI的时候,熟悉片段API并没有什么坏处


值得指出的是,
片段
仅在Android 3.0(API级别11)中本机支持,要支持早期设备,您需要安装中的Android支持包。因此,如果您当前的应用程序针对的是2.x设备,为了简单性和.apk大小,我会坚持使用基于活动的方法,除非移动到本机API级别(如Android 3.0+)这是个人偏好,但最终您原始问题的答案将归结为您的个人偏好。

就您的应用程序或任何应用程序而言,最好使用片段,它不会对您的应用程序造成任何伤害,也可以减轻您的负担,同时进一步扩展您的平板电脑应用程序。因此,最好从应用程序中使用片段开始。

设置片段之间的交互比设置活动之间的交互更容易

如果是活动:

  • 您需要在ActivityResult()上使用
    startActivityForResult()
    /
    
    
  • 您的自定义类型必须实现
    Parcelable
    接口才能在活动之间传递
  • 活动暂停/停止时,您必须释放所有资源
  • 如果是碎片:

  • 传递数据就像从
    FragmentManager
    获取片段实例并调用方法一样简单
  • 无需实施
    Parcelable
  • 您可以在包含所有片段的活动中保存对“重”资源的引用,并只初始化/释放它们一次(无需对每个片段进行初始化/释放)
  • 另外,
    片段的实例
    活动的实例
    更轻量级,初始化/恢复所需的时间和资源更少


    一般来说,当您使用片段时,UI组件之间的交互更干净、更优雅、更易于实现。

    将片段视为将代码模块化为可管理片段的一种方式。每个片段代表一小部分功能和UI。这允许您轻松地调整代码以适应不同的场景

    你真的不打算支持tabl吗