【问题标题】:tablet/handset layout structure with fragments带有片段的平板电脑/手机布局结构
【发布时间】:2013-06-09 21:39:18
【问题描述】:

在这篇文章中http://developer.android.com/guide/practices/tablets-and-handsets.html 我们使用 res/layout/main.xml 和一个用于手机的片段,使用 res/layout-large/main.xml 和两个用于平板电脑的片段。我们必须检查第二个片段是否在布局中,以定义应用程序是在平板电脑上还是在手机上运行。 我有 4 个布局(2 个用于手机,2 个用于平板电脑):

  • 布局端口
  • 布局土地
  • layout-sw600dp-port
  • layout-sw600dp-land

我检查屏幕方向以定义显示是纵向还是横向模式,并检查布局是否包含片段以定义它是平板电脑还是手机。

有没有更好的方法来处理布局和片段?

如果我们有两个片段(例如http://i.stack.imgur.com/FtzKs.png)和如果手机显示屏不能同时显示这两个片段以仅显示第一个片段,是否可以使用一种布局

提前致谢! :)

【问题讨论】:

    标签: android layout android-fragments tablet


    【解决方案1】:

    你在那里展示的确实是可能的!这就是所谓的 Master Detail Flow(如果您在 Eclipse 中使用 adt 进行开发,请查看他的新活动向导,该向导将其作为模板选项提供)。

    这个布局基本上只是一个活动中的两个片段(或者,现在,从 android 4.2 开始,它们也可以嵌套在另一个片段中!)以某种方式相互交互。要创建链接到的布局,需要检测设备是手机还是平板电脑,然后相应地设置两个片段在不同情况下的可见性。

    您会发现许多检测屏幕尺寸here 的方法,无论您想使用以英寸、像素为单位的屏幕尺寸还是制造商的默认类别。

    可见性和大小等属性可以使用Layout Params 及其各种子类以编程方式设置。

    在任何特定情况下,您是选择使用多种布局来支持不同的屏幕尺寸还是以编程方式进行更多操作,都取决于您。就个人而言,我认为模块化设计代码然后使用布局将所有部分放在一起始终是一种好习惯(如果您决定要进行更改,它将为您省去很多麻烦)。但无论哪种方式,支持更多的设备总是需要更多的代码,而且没有两种方法可以解决这个问题......android开发的诅咒之一:P

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 2011-10-31
      • 2011-09-02
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      相关资源
      最近更新 更多