我是一个新的Android开发人员,我注意到最近adt bundle已经改变了一种方式,当你打开一个新的android项目时,它设置一个主要活动和一个片段,而不是仅仅创建一个活动。
因此,我想知道这是否意味着我宁愿用片段编写代码?意思是只有一个活动,只是在片段之间跳转?
如果没有,我何时更愿意打开新活动而不是新片段?
答案 0 :(得分:3)
将活动视为显示器的主干,并将碎片视为显示器的小部件。
当您想要完全更改整个显示时,可以更改活动,当您只想更改部分显示时,可以与片段混合。
沿着这些方向的东西
答案 1 :(得分:1)
是的,你可以这样做,有一个活动和其余的代码碎片。 你知道在我的应用程序中我有4个活动,差不多(我没有计算过)我用过的50多个碎片。 Android - I need some clarifications of fragments vs activities and views http://developer.android.com/guide/components/fragments.html 参考这两个链接,你可以找到有关片段的足够信息。 您可以在平板电脑中使用片段来有效地使用其屏幕,并在上面的链接中找到更多的冒险。 希望这有帮助
答案 2 :(得分:1)
我认为这也取决于您在编码时是否想要使用活动或片段。 (好吧,在某些情况下,您可能希望使用活动而不是碎片:例如,在使用相机时将应用配置切换为横向)
虽然片段提供代码重用性和灵活显示的视图,但它们也会增加应用程序的复杂性。您也可以通过更健壮,更简单的方式获得与活动相同的视图。但是如果你能够对你的片段进行概述,你应该没办法。我认为你应该尝试两种方式并自己决定哪种方式最好。
答案 3 :(得分:0)
从4 reasons to use Android Fragments开始,片段的目的是:
片段组用户界面组件及其相关逻辑。
同样来自同一篇文章:
1。处理设备形状因子差异
Activity类通常被认为是Android中的主要UI类。确实,Activities确实为应用程序呈现UI,但是活动还有许多其他职责,例如生命周期管理,平台交互等。将所有这些负担放在Activity类中会给处理设备形状因素差异带来困难。最终会发生以下两件事之一。
单个Activity必须为各种外形提供大量特殊情况处理
为每个表单因素创建单独的活动,其中非UI详细信息重复或以其他方式在每个活动中共享
片段通过获取UI详细信息并将其他职责留给活动来消除此问题。这样,可以为每个形状因子创建单独的片段,其中特定于形状因子的UI细节是每个片段的唯一职责。然后,Activity可以自由地将UI职责委派给当前形状因子的相应片段。
2。在应用程序屏幕之间传递信息
历史上,Android应用中的每个屏幕都是作为单独的Activity实现的。这在屏幕之间传递信息时产生了挑战,因为Android Intent机制不允许在活动之间直接传递引用类型(即对象)。相反,必须序列化对象或提供可全局访问的引用。通过使每个屏幕成为一个单独的片段,完全避免了这种数据传递的麻烦。片段始终存在于给定Activity的上下文中,并且始终可以访问该Activity。通过在Activity中存储感兴趣的信息,每个屏幕的片段可以通过Activity简单地访问对象引用。
3。用户界面组织
用于组织应用程序屏幕的两个最常见的UI隐喻是选项卡和下拉列表。当只有几个屏幕时,标签很棒,当有多个屏幕时,下拉列表工作正常,就像从Android电子邮件应用程序中选择文件夹一样,如此处所示。
片段使实现这些UI隐喻变得容易。在这两种情况下,您只需将Android ActionBar置于适当的导航模式,实现适当的界面,然后使用FragmentTransaction在当前显示的片段之间切换。
标签使用ActionBar.NAVIGATION_MODE_TABS和ActionBar.TabListener
下拉列表使用ActionBar.NAVIGATION_MODE_LIST和ActionBar.OnNavigationListener
4。高级UI隐喻
随着Fragments的使用日趋成熟,它们是丰富的UI设计中越来越重要的一部分,并且正在成为一些更高级的UI隐喻的基础。我最喜欢的一种是基于滑动的导航,您可以通过将手指从显示器的一侧拉到下一个,在应用程序的屏幕之间移动。
要向应用添加滑动导航,只需为每个屏幕实现片段,将ViewPager放置在UI布局中,并将ViewPager连接到FragmentPagerAdapter。