Android拉伸第二列填充屏幕,但如果需要,可以使用多行

时间:2015-04-20 14:05:15

标签: android android-layout android-tablelayout

我有一个由2列组成的表。第一列仅包含宽度固定的图像。第二列包含的文本可能很短或太长而无法放在一行中。

我希望桌子完全填满屏幕,但不要超过它。如果需要,文本可以分为多行。此外,两列都应该有一些填充。

我建议第一列使用重量0,第二列使用重量1。

我桌子的第一行是:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/rlMapDetail"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:background="@color/white"
>

<TableRow>
    <ImageView
        android:id="@+id/imgAddress"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/map_address_detail"
        android:layout_weight="0"
        android:padding="5dp"
        />
    <TextView
        android:id="@+id/txtAddress"
        android:textColor="@color/black_gray"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center|left"
        android:singleLine="false"
        android:inputType="textMultiLine"
        android:layout_weight="1"
        android:padding="5dp"
        android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
        />
</TableRow>

TableLayout的总宽度超出了屏幕大小,因此我对表的后续行有问题。

enter image description here

2 个答案:

答案 0 :(得分:3)

我终于找到了解决这个问题的方法是添加:

         android:stretchColumns="1"
         android:shrinkColumns="1"

TableLayout

答案 1 :(得分:0)

我不认为你应该提供重量,因为imageview有固定的宽度。您需要将宽度匹配父级设置为textview。