平板电脑/手机布局结构与片段

时间:2013-06-13 13:20:53

标签: android layout android-fragments tablet

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

  • layout-port
  • 布局陆
  • layout-sw600dp-port
  • 布局sw600dp陆

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

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

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

提前致谢! :)

1 个答案:

答案 0 :(得分:1)

你在那里展示的确有可能!这就是一个名为Master Detail Flow的东西(如果你在Eclipse中用adt开发,请查看他的新活动向导,它提供了这个作为模板选项)。

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

您可以找到许多方法来检测屏幕尺寸here,无论您是要使用英寸,像素或制造商默认类别的屏幕尺寸。

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

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