EditText没有wrap_content

时间:2013-06-26 17:26:17

标签: android android-edittext

我似乎无法将我的EditText的宽度设置为wrap_content。我的意思是让EditTexts宽度与其中的text / hint相同

这是我的XML片段

<?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:id="@+id/tableLayout"
    android:background="#FFF"
    android:padding="5dp"
    android:stretchColumns="1,2,3" >

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

        <TextView
            android:id="@+id/tvBill"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Bill Total" />

            <EditText
                android:id="@+id/etBill"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ems="10"
                android:hint="0.00"
                android:textSize="14sp" >

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

    ...
</TableLayout>

由于我是新来的,我无法发布图片,所以这里是layout editor

2 个答案:

答案 0 :(得分:3)

属性android:ems设置EditText字段的宽度。由于您已将其设置为10,因此您将始终看到一个可容纳10个字符的字段。所以删除android:ems应该有所帮助。

答案 1 :(得分:2)

我认为要修复您的问题,您应该删除android:layout_weight="1"。在这种情况下似乎不需要它。当您使用它时,您希望将width设置为0dp horizontal layoutheight设置为0dp vertical布局。< / p>

width TableRow更改为wrap_content可以为您提供所需内容。

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

    <TextView
        android:id="@+id/tvBill"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Bill Total" />

        <EditText
            android:id="@+id/etBill"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="0.00"
            android:textSize="14sp" >

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

According to the docs

  

TableRow的子节点不需要在XML文件中指定layout_width和layout_height属性。 TableRow始终将这些值分别强制为MATCH_PARENT和WRAP_CONTENT。