0

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

  • 布局端口
  • 布局土地
  • 布局-sw600dp-端口
  • 布局-sw600dp-土地

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

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

如果我们有两个片段,例如http://i.stack.imgur.com/FtzKs.png并且如果手机显示不适合它们两个只显示第一个,是否可以使用一种布局?

提前致谢!:)

4

1 回答 1

1

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

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

您会在此处找到多种检测屏幕尺寸的方法,无论您是想使用英寸、像素还是制造商的默认类别的屏幕尺寸。

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

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

于 2013-06-13T13:50:31.437 回答