-1

我在 Hello Android 书中读到了这段代码,但我不知道为什么要写两个 LinearLayout。我可能是其中之一删除或移动到其他?为什么我们使用嵌套的 LinearLayout?它有什么作用?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@color/background"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="30dip"
    android:orientation="horizontal">
    <LinearLayout
        android:orientation="vertical"
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_gravity="center">
        <TextView
            android:text="@string/main_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_marginBottom="25dip"
            android:textSize="24.5sp"/>
        <Button
            android:id="@+id/continue_button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/continue_label"/>
        <Button
            android:id="@+id/new_button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/new_game_label"/>
        <Button
            android:id="@+id/about_button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/about_label" />
        <Button 
            android:id="@+id/exit_button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/exit_label"/>
   </LinearLayout>
</LinearLayout>

请帮我。谢谢你。

4

2 回答 2

4

水平布局是水平布局元素,如:

[element][element][element]

垂直的布局是这样的:

[element]
[element]
[element]

因此,使用显示的 xml 格式,它将是垂直排列的一排按钮。如果您不需要该布局,那么是的,您可以通过删除一个来简化它。

很难用文字解释,但这就是它的样子:

----Outer (Horizontal) layout-----
|                                |
|  ---Inner (Vertical) layout-   |
|  |       [Textview]        |   |
|  |       [Button]          |   |
|  |       [Button]          |   |
|  |       [Button]          |   |
|  ---------------------------   |
----------------------------------

文本视图/按钮垂直向下移动。

编辑:

实际上由于外部布局有

android:layout_width="fill_parent"
android:layout_height="fill_parent"

它只会占据整个屏幕,有 30 个填充。然后内部布局将垂直适应其中的内容,并在水平方向上最大化宽度。

我认为您可能不需要外部布局..您可以通过一个适当的属性获得相同的效果LinearLayout

于 2012-09-01T05:13:44.790 回答
0

这里有2个LinearLayout的用来保持布局的方向

第一个或父 LinearLayout 将设法覆盖整个屏幕,因为

android:layout_width="fill_parent"
android:layout_height="fill_parent"

背景颜色

并在队列中水平添加所有内容,因为

android:orientation="vertical"[![enter image description here][1]][1]

第二个 LinearLayout 或嵌套的一个会将所有内容放在中心,因为

android:layout_gravity="center"

将只占用物品所需的空间,因为

android:layout_height="wrap_content"
android:layout_width="fill_parent"

一切都将按垂直顺序排列,因为

android:orientation="vertical"
于 2017-04-12T09:53:40.700 回答