代码之家  ›  专栏  ›  技术社区  ›  Al Lelopath

如何降低行高。(表格布局>表格行)

  •  1
  • Al Lelopath  · 技术社区  · 10 年前

    此中的行高度 TableLayout 太多,高于文本所需的值。 我玩过很多不同的价值观,但都做不好。 According to the docs ,的子级的默认值 表格布局 是 wrap_content , 但行高似乎比这还要高。 它还表示宽度的值总是 包装_内容 , 所以设置这个没有意义。 “children”指的是直接子(在本例中为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>
    

    以下是显示当前显示和所需显示的图像:

    Current

    Desired

    1 回复  |  直到 10 年前
        1
  •  3
  •   Howard Edwards    10 年前

    请删除:

    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"