片段与活动

时间:2014-04-13 09:27:08

标签: android android-fragments android-activity

我是一个新的Android开发人员,我注意到最近adt bundle已经改变了一种方式,当你打开一个新的android项目时,它设置一个主要活动和一个片段,而不是仅仅创建一个活动。

因此,我想知道这是否意味着我宁愿用片段编写代码?意思是只有一个活动,只是在片段之间跳转?

如果没有,我何时更愿意打开新活动而不是新片段?

4 个答案:

答案 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。