我需要对碎片与活动和观点进行澄清
在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