我为对话框创建了一个布局。我希望邮政编码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>
答案 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也继承了该功能。