Android Layout无法使EditText在LinearLayout中排队

时间:2012-06-04 21:34:20

标签: android android-layout

我为对话框创建了一个布局。我希望邮政编码EditText和Email EditText Edit框的宽度相同,我希望它们左对齐。

所以看起来应该是这样的:

电子邮件: _ __ _ ___

ZipCode: _ __ _ ___

更正:实际上,上面没有在StackOverflow上正确显示。上面的行应该是完全均匀的并且左对齐。所以我在这个论坛上有完全相同的显示问题。我在电子邮件之后放了空格:但它仍然没有对齐。

相反,我收到的邮件总是比邮政编码更广泛。我甚至将EditText改为相同的输入类型但没有运气。只有当TextView具有完全相同的文本时,它们才会对齐,就好像它们都说邮政编码:如果我使用空格填充电子邮件文本编辑,他们布局管理器似乎知道这一点,并将电子邮件EditText扩展为大于邮政编码。很沮丧!

<?xml version="1.0" encoding="utf-8"?>

<TextView
    android:id="@+id/messageMsg"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textSize="@dimen/text_21px"
    android:textColor="@color/white"
    android:text="lorum ipsum afasdf lajsdfasldfjald:"
    android:padding="10dip"
    />
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <TextView   
        android:id="@+id/emailDescriptor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="@dimen/text_21px"
        android:textColor="@color/white"
           android:padding="10dip"              
           android:text="Email:    "/>
    <EditText android:id="@+id/emailId"
         android:inputType="textEmailAddress"
         android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dip"
           android:layout_margin="10dip"            
           android:textSize="@dimen/text_21px" />
</LinearLayout>
<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">   
    <TextView   
        android:id="@+id/zipCodeDescript"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dip"
        android:textSize="@dimen/text_21px"
        android:text="ZIP Code: "
        android:textColor="@color/white"/>
    <EditText android:id="@+id/zCode"
         android:inputType="textEmailAddress"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dip"
        android:layout_margin="10dip"
        android:textSize="@dimen/text_21px"/>
</LinearLayout>

3 个答案:

答案 0 :(得分:0)

正如@AedonEtLIRA所说,你可以对这个位置进行硬编码。您可以增加左侧的margin属性以使它们对齐。

或者,您可以使用属性

android:layout_alignLeft="@id/your_other_edittext"

第三个想法是,使标签的文本框具有相同的“宽度”,然后以下edittexts应该对齐。

最后,您可以使用加权巢布局。但这是个坏主意。表现不佳&amp;过分混乱。 =)

答案 1 :(得分:0)

如果我理解正确的话,试试这个

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

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

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

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="7dp"
            android:text="ZipCode" />

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

            <requestFocus />
        </EditText>
    </TableRow>

</TableLayout>

答案 2 :(得分:0)

今天偶然发现了一个有用的属性,并记住了这篇文章。

结帐Textview.setEms(int)。 Edittext也继承了该功能。