如何使用TextView和EditText高效地创建表单?

时间:2014-10-07 19:42:24

标签: android android-layout

我想制作一个干净整洁的形式:

Name:          ____________
Foo:           ____________
Bar:           ____________
Whatever:      ____________

每一行均匀分享屏幕高度(在本例中为全屏的25%),每个TextView应位于屏幕的左半部分,EditText应从屏幕中心开始。

我目前的解决方案是(基本上):

<LinearLayout android:orientation="vertical">
    <LinearLayout android:orientation="horizontal" weight="1">
        <TextView weight="1">
        <EditView weight="1">
    </LinearLayout>

    <LinearLayout android:orientation="horizontal" weight="1">
        <TextView weight="1">
        <EditView weight="1">
    </LinearLayout>

    <LinearLayout android:orientation="horizontal" weight="1">
        <TextView weight="1">
        <EditView weight="1">
    </LinearLayout>

    <LinearLayout android:orientation="horizontal" weight="1">
        <TextView weight="1">
        <EditView weight="1">
    </LinearLayout>
</LinearLayout>

这很好但是会创建嵌套权重,这对于表演来说很糟糕。在API级别8中有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用GridLayout,它易于使用,它会使您的视图变平(通过删除所有不必要的LinearLayout)

<GridLayout 
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:columnCount="2"
   android:rowCount="4">

     <TextView
        android:layout_column="0"
        android:layout_row="0"/>

     <EditView
        android:layout_column="1"
        android:layout_row="0"/>

      ....    
</GridLayout>

有关详细信息,请查看Android dev doc

答案 1 :(得分:0)

如果您愿意,可以右对齐EditText并左对齐TextView,以便在布局中获得对齐的组件。然后你可以从右到左输入文本。如果您想要使用嵌套权重,这是一种可能的方法。它可能不会得到你要问的那种风格。

在字段上进一步使用minWidth来填充Dialog可以提供一个有点干净的结构。只是猜测你想要从帖子和你的整体概念中完成什么。