相关疑难解决方法(0)

片段设计:通过在单个Activity中显示/隐藏片段来适应多种屏幕布局?

我试图了解如何使用Fragments创建适应多个屏幕和布局的应用程序.我研究了几个例子:

  1. Android Developer指南中的Fragments文档.
  2. Google IO应用
  3. 来自ActionBar Sherlock的碎片样本.

所有这些都提倡多种Activity方法:

  • 在大屏幕上,显示Activity具有多个Fragments 的单个屏幕
  • 在较小的屏幕上,将Fragments 分成多个Activitys.

我想到了另一种方法 - 一个方法Activity:

  • 有一个单独Activity的所有Fragments.
  • 根据屏幕大小和方向,显示/隐藏适当Fragment的(使用FragmentTransaction.show()/ FragmentTransaction.hide()).

为了说明Android开发人员指南使用的相同"新闻文章列表/文章内容"示例:

  • News活动同时包含ArticleListFragmentArticleReaderFragment.
  • 在选项卡上,始终显示两个片段.
  • 在手机上,ArticleReaderFragment最初是隐藏的.从列表中选择文章时,将ArticleListFragment隐藏该文章ArticleReaderFragment并显示该文章.

有没有人用过类似的方法?这种方法可能有什么实际缺点吗?与多活动方式相比,它看起来更好/更差吗?例如,片段无法在XML中显示/隐藏 - 必须使用FragmentTransaction它.


编辑1:假设情景的描述

想象一下,一个应用程序可以在屏幕上一次显示多达三个"窗格".此外,这些是要考虑的因素:

  • 手机一次只能显示一个窗格(无论纵向/横向如何)
  • 7英寸平板电脑可以显示2个窗格,在纵向中垂直分割,并在横向模式下水平分割.
  • 一个10英寸的平板电脑可以显示2个窗格,在纵向中垂直分割; 3个窗格在景观中水平分割.

为简单起见,让我们不要讨论电视屏幕.

现在,将其翻译为设计:

  • 我们有三个片段:Frag1,Frag2和Frag3.
  • 在最简单的情况下,所有三个片段都在一个Activity中(我们称之为ActivityA).这是10英寸的风景案例.
  • 另一个"简单"的情况是每个Fragment都在自己的Activity中 - ActivityA包含Frag1; ActivityB包含Frag2,ActivityC包含Frag3.

到目前为止,我们没有考虑任何与Android开发人员指南中提供的新闻阅读器示例明显不同的内容.唯一的主要区别是有 …

java android android-layout android-fragments

38
推荐指数
2
解决办法
9848
查看次数

标签 统计

android ×1

android-fragments ×1

android-layout ×1

java ×1