我知道它Activities的目的是代表我的应用程序的单个屏幕,同时Fragments设计为可重用的UI布局,其中嵌入了逻辑.
直到不久前,我开发了一个应用程序,因为它说应该开发它们.我创建了一个Activity代表我的应用程序的屏幕并使用Fragments for ViewPager或Google Maps.我很少创建ListFragment可以多次重用的UI或其他UI.
最近我偶然发现一个项目只包含2 Activities个是一个SettingsActivity而另一个是MainActivity.它的布局中MainActivity填充了许多隐藏的全屏UI片段,只显示了一个.在Activity逻辑FragmentTransitions中,应用程序的不同屏幕之间存在许多.
我喜欢这种方法的原因是因为应用程序使用了一个ActionBar,它保持原样并且不会随着屏幕切换动画一起移动,这就是Activity切换时发生的情况.这为这些屏幕转换提供了更流畅的感觉.
所以我想我要问的是分享你关于这个主题的当前开发方式,我知道它看起来可能看起来像一个基于意见的问题,但我把它视为一个Android设计和架构问题...不是真的基于意见的一个.
更新(01.05.2014):继来自Square的Eric Burke的演示之后(我不得不说这是一个很棒的演示文稿,为Android开发人员提供了许多有用的工具.而且我与Square没有任何关系)
http://www.infoq.com/presentations/Android-Design/
根据我过去几个月的个人经验,我发现构建应用程序的最佳方法是创建一组片段,这些片段代表应用程序中的流并将所有这些片段集中在一个片段中Activity.所以基本上你Activities的应用程序的数量与流量的数量相同.这样,操作栏在所有流程的屏幕上保持完整,但正在重新创建流程,这很有意义.正如埃里克伯克所说,并且我也已经意识到,尽可能少Activities地使用的哲学并不适用于所有情况,因为它在他所谓的"上帝"活动中造成混乱.
基本的"片段教程"模式是这样的:
Fragments并且两者都存在于同一个中Activity.Fragment中的一个Activity.Activity的细节Fragment.(例如Dianne Hackborn的Android 3.0 Fragments API和Fragments API指南)
在这两个设备上,功能都在Fragments.(简单)
在平板电脑上,整个应用程序是1Activity,在手机上,有很多Activities.
Activities?此方法的一个问题是,您复制了主平板电脑Activity和单独电话中的大量逻辑Activities.
Fragments出逻辑(仅使用不同的布局),在两种情况下保留1活动模型会不会更容易?这种方式大部分逻辑都存在于Fragments自身中,并且只有一个Activity- 更少的代码重复.
我所读到的ActionBarSherlock也是它似乎最好用Fragments而不是Activities(但我还没有使用它).
教程是否过于简化,或者我错过了这种方法的主要内容?
我们已经在办公室成功地尝试了这两种方法 - 但我即将开始一个更大的项目,并希望尽可能让自己变得容易.
一些相关问题的链接:
根据我的研究,背斜堆的概念及其存在方式存在显着差异:
当activity被放置到backstack的activities用户可以通过仅按下导航回先前的活动back
按钮.
Activity 可以独立存在.
当a fragment被放置到活动时,我们必须通过addToBackstack()在调用期间请求保存实例fragment
transaction.
Fragment 必须住在里面 activity
还有其他差异吗?
我什么时候需要创建新活动,何时需要更改视图?
我的应用程序需要做:
两个大按钮(菜单类型)
项目列表 - 取决于上一屏幕上的选择
另一个列表 - 取决于prev屏幕上的选择
显示项目
所有屏幕都需要有相同的菜单菜单(最后一个有另一个按钮)
我是否需要为每个屏幕创建活动或仅更改同一活动中的视图?
也许我需要创建一个myBase扩展活动的父类,我的所有活动都会扩展他?
我有三个标签,每个标签有三个片段和一个主要活动,我想创建套接字通过wifi网络发送消息,那么我应该在哪里编写代码呢?在那个特定的片段类或主要活动?
android fragment android-intent android-layout android-fragments
我是 android 新手,我正在开发一个现在开始的 android 应用程序。它是具有特定日期/时间的各种可保存的用户输入信息。并向用户查看以前存储的数据。并且还存储一些设置信息。
这可能看起来很简单,但它会花费很多 UI 组件。我最近学习了 Activity 和 Fragment,并且更喜欢使用一个 Main Activity 类,其余的将使用 Fragment 构建。
我的理解是,Fragment 与 Activity 生命周期相关联,并打算用作其他活动的可重用。
但我想知道的是,正如我所提到的,
我想要一些关于我的问题的建议。
我有一个大型的Android游戏,其中每个逻辑屏幕都有一个Activity.(启动画面,开始画面,关卡选择器,游戏画面和设置是不同的活动).现在一切都很好.
如果我重写所有内容以便只有一个活动且逻辑屏幕是碎片,它会减少RAM或CPU消耗吗?
我有一个带搜索选项的屏幕.单击选项会显示对话框或重定向到另一个屏幕,这就是我无法使用"设置"应用程序方法的原因:显示右侧的下一个屏幕.
在平板电脑上,我的屏幕看起来像这样:

哪个不是很整洁.我想我们都已经阅读了针对Android的完美设计指南,仅针对最简单的问题提供解决方案,例如转向:

成:

除了"在同一个屏幕上添加列表视图和详细信息视图,哟"之外,我没有找到多窗格布局的指南.我应该将ListView拆分为较小的ListView(ListView中的每个部分)吗?有没有其他应用程序这样做?
android ×9
performance ×2
android-view ×1
architecture ×1
difference ×1
fragment ×1
java ×1
transitions ×1