0

我为对话框创建了一个布局。我希望邮政编码 EditText 和电子邮件 EditText 编辑框的宽度相同,并且我希望它们左对齐。

所以它应该看起来像:

电子邮件: _ __ _ ___

邮政编码:_ __ _ ___

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

相反,我收到的电子邮件总是比邮政编码更宽。我什至将两个 EditText 都更改为相同的输入类型,但没有运气。只有当 TextView 具有完全相同的文本时,它们才会像它们都说 Zip Code: 那样对齐。如果我用空格填充电子邮件文本编辑,他们的布局管理器似乎知道这一点并将电子邮件 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>

4

3 回答 3

0

正如@AedonEtLIRA 所说,您可以对职位进行硬编码。您可以增加左侧的边距属性以使它们对齐。

或者,您可以使用该属性,

android:layout_alignLeft="@id/your_other_edittext"

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

最后,您可以使用加权嵌套布局。但这是个坏主意。表现不佳和过度混乱。=)

于 2012-06-04T22:14:12.560 回答
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>
于 2012-06-04T22:18:28.487 回答
0

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

查看Textview.setEms(int)。Edittext 也继承了该功能。

于 2012-06-19T01:45:00.337 回答