4

我正在尝试创建以下布局:

|-----------------------------------------------------------|
|                                                           |
|                                                           |
|                                                           |
|                                                           |
|                 L-Email     [___________]-R               |
|                 L-Password  [___________]-R               |
|                                   (Login)-R               |
|                                                           |
|                                                           |
|                                                           |
|-----------------------------------------------------------|

所以我正在尝试创建一个线性布局,每封电子邮件、密码和登录行都是一个线性布局。但我想要的是将整个东西放在中心(垂直和水平)并将电子邮件和密码标签与屏幕的“L-”部分对齐(“L-”只是表示我想要对齐到那里)虽然我想将两个文本框和登录按钮与“-R”符号对齐(所以我实际上不需要L-和-R符号,这些只是表示此模型中的对齐位置)

这是一个更具体的模型:

样机示例

所以我想将整个东西对齐到中心并将文本标签对齐到左边的绿线,而其他的对齐到右边的绿线。

目前我更喜欢在 Eclipse 中使用图形编辑器,但欢迎提出任何建议。

到目前为止,我已经尝试过这个,但已经卡住了:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/sahbg"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10" >

            <requestFocus />
        </EditText>

    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <EditText
            android:id="@+id/EditText01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />

    </LinearLayout>

</LinearLayout>

它看起来像这样:

布局结果

4

1 回答 1

3

使用您现有的代码:

  1. 改变外部LinearLayout的高度和宽度:

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

    (而且您可能需要更改gravity="center"layout_gravity="center",老实说,我现在不记得哪个是哪个。)

  2. 将“密码”LinearLayout 的宽度切换为match_parent“用户名”和“密码”行的宽度相同。

  3. 删除包含 Button 的 LinearLayout,因为它不是必需的,并添加:

    android:layout_gravity="right"
    

    到 Button 以将其移至右侧。您也可以在 EditTexts 上使用它并给它们一个特定的宽度以强制它们具有相同的大小。

于 2013-03-03T17:18:46.850 回答