Android - 活动与 FragmentActivity? [复制]
Posted
技术标签:
【中文标题】Android - 活动与 FragmentActivity? [复制]【英文标题】:Android - Activity vs FragmentActivity? [duplicate] 【发布时间】:2013-02-25 10:40:50 【问题描述】:我是 android 新手。我想构建一个标签格式的应用程序。我发现许多使用了Activity
的文档。在很多情况下也使用了FragmentActivity
。我不确定哪个会更好。请建议我应该使用Activity
还是FragmentActivity
以标签格式开始开发?
【问题讨论】:
【参考方案1】:ianhanniballake is right。您可以从FragmentActivity
获得Activity
的所有功能。事实上,FragmentActivity
的功能更多。
使用FragmentActivity
,您可以轻松构建tab and swap
格式。对于每个选项卡,您可以使用不同的Fragment
(Fragments
可重复使用)。因此,对于任何FragmentActivity
,您都可以重复使用相同的Fragment
。
您仍然可以将Activity
用于单个页面,例如列出某些内容并在下一页中编辑列表的元素。
如果您使用android.app.Fragment
,请记住使用Activity
;如果您使用的是android.support.v4.app.Fragment
,请使用FragmentActivity
。永远不要将android.support.v4.app.Fragment
附加到android.app.Activity
,因为这会导致抛出异常。
【讨论】:
仅供参考,我在这里找到了一些关于 Fragment Android 的其他语言的很好的讨论 Fragment trong Android 但请参阅 @ianhanniballake 的回答:除非针对 API 11 之前的 API,您可以使用Activity
而不是 FragmentActivity
,并且仍然可以访问 Fragments; this 答案并没有完全这么说(尽管最后一段暗示了这一点)。
我们知道,我们项目中大多有一个BaseActivity,其他所有Activity都会扩展它。但是说到FragmentActivity,我们做不到。所以即使在tab的情况下我也不使用FragmentActivity。【参考方案2】:
FragmentActivity
为您提供Activity
的所有功能以及使用Fragments 的能力,这在许多情况下非常有用,尤其是在使用ActionBar 时,这是在安卓。
如果您仅针对 Honeycomb (v11) 或更高版本的设备,那么您可以使用 Activity
并使用 v11 中引入的原生 Fragments,而不会出现问题。 FragmentActivity
是专门作为 Support Library 的一部分构建的,用于将其中一些有用的功能(例如片段)反向移植回旧设备。
我还应该指出,您可能会发现 Backward Compatibility - Implementing Tabs 培训对您未来很有帮助。
【讨论】:
@A--C - 我已经编辑了我的答案 - 你说得对,API 11+ 设备可以使用本机 Fragments 和普通的 Activity 类。 我要挑战API11+中普通Activity类可以用作Fragment的断言。这似乎在 KitKat 中发生了变化。见android.googlesource.com/platform/frameworks/base.git/+/… @cmarcelk - 不确定“普通的 Activity 类可以用作片段”是什么意思 - 我说android.app.Activity
与 android.app.Fragment
一起使用,而不是它们可以互换。
@cmarcelk in API11+ Activity
可以访问片段; FragmentActivity
不再需要。 Activity 或 FragmentActivity 本身不是 Fragments。【参考方案3】:
如果您在最近的 ADT 包中使用 Eclipse“新建 Android 项目”向导,您将自动将选项卡实现为片段。这使您的应用程序在将来更容易转换为平板电脑格式。
对于简单的单屏布局,您仍然可以使用Activity
。
【讨论】:
以上是关于Android - 活动与 FragmentActivity? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
android.os.TransactionTooLargeException 与作物活动