WRAP_CONTENT无法在TableLayout

时间:2016-03-06 15:46:51

标签: android tablelayout

我正在尝试使用TableLayout创建一个4列显示。我已将列中的视图设置为WRAP_CONTENT以获取布局宽度。然后我输入一些测试值来查看结果。它不会缩小到设备屏幕的宽度,而是扩展到设备的边界之外。这是我的布局:

<?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:layout_width="wrap_content"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:id="@+id/editText"
            android:text="Player" />

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

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:id="@+id/editText3"
            android:text="Player" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:id="@+id/editText4"
            android:text="Player" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:ems="10"
            android:id="@+id/editText5"
            android:text="26" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:ems="10"
            android:id="@+id/editText6"
            android:text="26" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:ems="10"
            android:id="@+id/editText7"
            android:text="26" />

        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="number"
            android:ems="10"
            android:id="@+id/editText8"
            android:text="26" />
    </TableRow>

</TableLayout>

这就是我所得到的。只显示了4列中的大约1.5个。 enter image description here

这就是我所期待的。我能得到这个的唯一方法是在布局宽度中放入特定的dp值。 enter image description here

我只想让4列填充到屏幕的可用宽度。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这是因为xml android:ems="10"属性中的TextView

尝试android:ems="5"或更少

您可以使用

实现相同目的
<TextView
    android:layout_width="0dp"
    android:layout_weight="0.25"

到所有TextView。并将android:orientation="horizontal"添加到TableRow

希望它能提供帮助。