WRAP_CONTENT 在 TableLayout 中不工作
WRAP_CONTENT not working in 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 列。
这就是我所期待的。我能得到这个的唯一方法是在布局宽度中放置特定的 dp 值。
我只想将 4 列填充到屏幕的可用宽度。有什么想法吗?
因为 android:ems="10"
在 xml TextView
属性中。
尝试 android:ems="5"
或更少
或
您可以使用
实现同样的效果
<TextView
android:layout_width="0dp"
android:layout_weight="0.25"
所有 TextView
。并将 android:orientation="horizontal"
添加到 TableRow
希望对您有所帮助。
我正在尝试使用 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 列。
这就是我所期待的。我能得到这个的唯一方法是在布局宽度中放置特定的 dp 值。
我只想将 4 列填充到屏幕的可用宽度。有什么想法吗?
因为 android:ems="10"
在 xml TextView
属性中。
尝试 android:ems="5"
或更少
或
您可以使用
实现同样的效果<TextView
android:layout_width="0dp"
android:layout_weight="0.25"
所有 TextView
。并将 android:orientation="horizontal"
添加到 TableRow
希望对您有所帮助。