android:shrinkColumns和android:stretchColumns如何工作?

时间:2015-09-01 12:14:34

标签: android android-tablelayout stretch shrink

我可以在android:shrinkColumns设置android:stretchColumnsTableLayout

例如:

<TableLayout
    android:shrinkColumns="2,3"
    android:stretchColumns="1,3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

那么这个属性如何影响列?

2 个答案:

答案 0 :(得分:7)

也许这可以帮助

 <TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:shrinkColumns="2,3"
    android:stretchColumns="1">

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:background="@color/red"
            android:text="1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:background="@color/green"
            android:text="2" />

        <TextView
            android:layout_width="wrap_content"
            android:background="@color/blue"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:text="3" />

    </TableRow>

    <TableRow>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:background="@color/red"

            android:text="4" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:background="@color/green"

            android:text="5" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_column="1"
            android:background="@color/blue"
            android:text="6" />
    </TableRow>
</TableLayout>

说明:

  

机器人:shrinkColumns =&#34; 2,3&#34;

     

机器人:stretchColumns =&#34; 1&#34;

意味着第2列和第3列将缩小,第1列将被拉伸 enter image description here

  

机器人:shrinkColumns =&#34; 3&#34;

     

机器人:stretchColumns =&#34; 1,2&#34;

意味着第3列将缩小,第1列和第2列将被拉伸

enter image description here

  

机器人:shrinkColumns =&#34; 1&#34;

     

机器人:stretchColumns =&#34; 2,3&#34;

意味着第3列将缩小,第1列和第2列将被拉伸

enter image description here

  

机器人:stretchColumns =&#34; *&#34;   意味着所有列都将被均匀拉伸

enter image description here

  

机器人:shrinkColumns =&#34; *&#34;   意味着所有列均匀收缩

enter image description here

答案 1 :(得分:6)

TableLayout可以通过调用setColumnShrinkable()(xml:android:shrinkColumns) or setColumnStretchable()(xml:android:stretchColumns) 将某些列指定为可收缩或可伸缩。

如果标记为 shrinkable ,则可以缩小列宽以使表适合其父对象。如果标记为可拉伸,则可以扩展宽度以适应任何额外空间。

表的总宽度由其父容器定义。重要的是要记住,列可以是可收缩和可伸展的

有关详细信息,请访问

  

https://developer.android.com/reference/android/widget/TableLayout.html