此TableLayout
中行的高度太高,高于允许文本所需的行数。
我玩了许多不同的价值观,但无法做到正确。
According to the docs,TableLayout
的子级默认值为wrap_content
,
但行高似乎不止于此。
还说它的宽度值总是wrap_content
,
所以没有必要设置它。
通过"孩子"这是否只意味着直接的孩子(在这种情况下为TableRow),
或者全部在下面(在这种情况下是TextView)?
如何降低行高?
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:shrinkColumns="*"
android:stretchColumns="*"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<TableRow
android:id="@+id/tableRow1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:id="@+id/textViewNameLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:typeface="sans"
android:textSize="18sp"
android:text="@string/name_string"
android:gravity="start">
</TextView>
<TextView
android:id="@+id/textViewName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:typeface="sans"
android:textSize="18sp"
android:text="Michael Foucalt"
android:gravity="start">
</TextView>
<TextView
android:id="@+id/textViewTitleLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:typeface="sans"
android:textSize="18sp"
android:text="@string/title_string"
android:gravity="start"
android:padding="10dp">
</TextView>
<TextView
android:id="@+id/textViewTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:typeface="sans"
android:textSize="18sp"
android:text="Philosopher"
android:gravity="start">
</TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:id="@+id/textViewPhoneLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:typeface="sans"
android:textSize="18sp"
android:text="@string/phone_string"
android:gravity="start">
</TextView>
<TextView
android:id="@+id/textViewPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:typeface="sans"
android:textSize="18sp"
android:text="555.111.2222"
android:gravity="start">
</TextView>
<TextView
android:id="@+id/textViewFaxLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:typeface="sans"
android:textSize="18sp"
android:text="@string/fax_string"
android:gravity="start"
android:padding="10dp">
</TextView>
<TextView
android:id="@+id/textViewFax"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:typeface="sans"
android:textSize="18sp"
android:text="555.123.4567"
android:gravity="start">
</TextView>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:id="@+id/textViewAddressLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:typeface="sans"
android:textSize="18sp"
android:text="@string/address_string"
android:gravity="start">
</TextView>
<TextView
android:id="@+id/textViewAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:typeface="sans"
android:textSize="18sp"
android:text="555 Champs Elysses"
android:gravity="start">
</TextView>
<TextView
android:id="@+id/textViewCityLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:typeface="sans"
android:textSize="18sp"
android:text="@string/city_string"
android:gravity="start"
android:padding="10dp">
</TextView>
<TextView
android:id="@+id/textViewCity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:typeface="sans"
android:textSize="18sp"
android:text="Paris"
android:gravity="start">
</TextView>
</TableRow>
</TableLayout>
以下是显示当前显示和所需显示的图像:
答案 0 :(得分:3)
请删除:
android:layout_weight="1"
来自TableRow元素的。它将导致行沿着屏幕的长度均匀拉伸。
修改强> 这个例子中的子节点都是TableRow和TextView。这就是为什么做这样的事情是合法的:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow android:id="@+id/tableRow1">
<TextView
android:id="@+id/textViewNameLabel"
android:gravity="start"
android:text="@string/name_string"
android:textSize="18sp"
android:textStyle="bold"
android:typeface="sans" />
.
.
.
</TableRow>
</TableLayout>
通过包装在TableLayout
中,可以自动为它们的宽度和高度属性分配wrap_content。编辑2: 从所有TextView组件中删除:
android:padding="10dp"