我需要对碎片与活动和观点进行澄清

在Android API 11+中,Google发布了一个名为Fragment的新类。

在视频中,Google建议尽可能(链接1,链接2),我们应该使用片段而不是活动,但他们没有解释原因。

碎片的目的和它们的一些可能的用途是什么(除了可以通过简单的视图/布局轻松实现的一些UI示例之外)?

我的问题是关于碎片:

  • 什么是使用片段的目的?
  • 与使用活动/视图/布局相比,使用片段有什么优点和缺点?
  • 奖金问题:

  • 你可以给一些片段真正有趣的用途吗? 谷歌没有在他们的视频中提到的东西?
  • 片段与包含它们的活动之间进行通信的最佳方式是什么?
  • 当使用碎片时,要记住什么是最重要的事情? 你的经验提示和警告?

  • #1&#2使用片段的目的是什么?与使用活动/视图/布局相比,使用片段有哪些优缺点?

    碎片是Android创建可重用用户界面的解决方案。 您可以使用活动和布局实现一些相同的事情(例如使用includes)。 然而; 片段连接到HoneyComb的Android API中。 让我详细说明一下。

  • ActionBar 。 如果你想在那里浏览你的应用程序,你很快就会看到ActionBar.TabListener接口为你提供了一个FragmentTransaction作为onTabSelected方法的输入参数。 你可能会忽略这一点,并做一些其他的和聪明的事情,但你会对付API而不是它。

  • FragmentManager以一种非常聪明的方式处理«返回»。 返回并不意味着回到最后的活动,就像常规活动一样。 这意味着回到之前的片段状态。

  • 您可以使用带有FragmentPagerAdapter的酷炫ViewPager来创建滑动界面。 FragmentPagerAdapter代码比常规适配器清晰得多,并且它控制着单个片段的实例化。

  • 如果您在尝试为手机和平板电脑创建应用程序时使用Fragments,您的生活将会变得更加轻松。 由于这些片段与Honeycomb + API紧密相连,因此您需要在手机上使用它们以重用代码。 这就是兼容性库派上用场的地方。

  • 您甚至可以并且应该仅将用于手机的应用程序使用片段。 如果你考虑到可移植性。 我使用ActionBarSherlock和兼容性库来创建“ICS外观”应用程序,这些应用程序看起来与1.6版一样。 您可以获得最新的功能,例如ActionBar ,带有标签,溢出,拆分操作栏,viewpager等。

  • 奖金2

    片段之间沟通的最佳方式是意图。 当你按Fragment中的某些东西时,通常会调用StartActivity()和其上的数据。 意图传递到您启动的活动的所有片段。


  • 片段是活动的一部分,它为该活动贡献了自己的用户界面。 片段可以被认为是一个子活动。 用户与之交互的完整屏幕称为活动。 活动可以包含多个片段。片段大多是活动的子部分。

  • 根据屏幕大小,活动可能包含0或多个片段。 片段可以在多个活动中重复使用,因此它在活动中充当可重用组件。

  • 一个片段不能独立存在。 它应该永远是活动的一部分。 活动可以在任何片段中存在。


  • 不确定你指的是什么视频,但我怀疑他们说你应该使用片段而不是活动,因为它们不能直接互换。 在开发指南中实际上有一个相当详细的条目,请考虑阅读它以了解详细信息。

    总之,片段生活在活动中,每个活动都可以容纳许多片段。 像活动一样,它们有一个特定的生命周期,与活动不同,它们不是顶级应用程序组件。 片段的优点包括代码重用和模块化(例如,在许多活动中使用相同的列表视图),包括构建多窗格界面(主要用于平板电脑)的功能。 主要缺点是(一些)增加了复杂性。 一般情况下,您可以通过(自定义)视图以非标准和较差的方式实现相同的功能。

    链接地址: http://www.djcxy.com/p/23139.html

    上一篇: I need some clarifications of fragments vs activities and views

    下一篇: Android activity/fragment responsibilities for data loading