Android布局,表格,相对和线性,我在他们的差异感到困惑

时间:2011-07-27 11:42:35

标签: android android-layout android-widget

我看过很多关于布局的文章,但我仍然感到非常困惑。我的问题是:

  • 何时使用相对布局?实施例
  • 何时使用表格布局以及为什么我们不能使用它而不是相对布局?
  • 何时使用线性布局?

我只需要简短的答案。

3 个答案:

答案 0 :(得分:2)

何时使用哪种布局?

我认为这取决于您的UI,以及最重要的是如何创建优化布局

根据定义: -

LinearLayout - 旨在在单个行或列中显示子视图控件。这是一种非常方便的用于创建表单的布局方法。

RelativeLayout - 旨在显示相对于彼此的子视图控件。例如,您可以将控件设置为位于另一个控件的“上方”或“下方”或“左侧”或“右侧”,由其唯一标识符引用。您还可以将子视图控件相对于父边对齐。

TableLayout - 旨在将子视图控件组织为行和列。对于表格的每一行,使用TableRow布局视图(基本上是水平方向的LinearLayout)为表格的每一行添加单独的视图控件。

参考文献:

Creating Efficient Layouts

Common Layout Objects

最重要的Hierarchy Viewer

答案 1 :(得分:1)

起初对这些布局存在一些困惑,但是当你开始玩这三种布局时,你会知道在哪里使用什么......我在相对布局上工作最多。 考虑我想总是在屏幕底部使用小部件,然后使用表格或线性布局,这是不可能的总是..没有感觉屏幕其他两个不能使项目在底部但相对可以做。任何类型的布局的使用取决于你屏幕要求。

答案 2 :(得分:0)

我开始使用relativelayout。但最近我转而使用线性布局。

原因很难解释,但以此为例:假设我想要一个在屏幕中间有两个图像的布局。两个图像应占屏幕宽度的1/4和屏幕高度的1/4。假设您希望它在所有设备上完全相同,那么这与relativelayout无关。但你可以用Linearlayout做到这一点。通过创建纵向和横向父项,您可以创建“框”。要做到这一点,你必须了解weigthsum和weigth。父布局应具有weigthsum属性,子窗口应具有权重属性。

无论如何,我的观点:Relativelayout易于使用,但它也具有欺骗性。您可能认为您的布局在所有设备上看起来都完全相同,但最有可能的是,它们看起来不一样。原因是:

  • 使用relativelayout,您必须使用dp或px定义大小(假设您不填充父级或包装内容)。
  • 不同的设备具有不同的宽高比。

我希望在理解相对和线性布局方面有所帮助。