GridLayout支持宽度问题

时间:2013-11-23 13:12:32

标签: android grid-layout android-support-library

我正在使用支持v7 GridLayout,但正如许多其他人所指出的那样,它并未正确测量其子宽度。

在这个question中,有一个解决方法,但是对我来说,变通方法是随机工作的,对于某些值可行,对于某些子值,它不会。

建议的解决方法:

 android:layout_width="0dp"
 app:layout_gravity="fill_horizontal"

我在运行时设置子值,所以我的猜测只是测量子宽度。

enter image description here

2 个答案:

答案 0 :(得分:0)

我使用您在此处提出的解决方法解决了问题:Android GridLayout not clipping text to column width此处Daniel Lew's Coding Thoughts GridLayout Child View Clipping Issues正常工作:

 android:layout_width="0dp"
 app:layout_gravity="fill_horizontal"

就我而言,当我应用于最后一列中的所有孩子时,即使以编程方式设置子值,它也能正常工作,如下例所示:

<android.support.v7.widget.GridLayout
    xmlns:grid="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/GridView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    grid:columnCount="2"
    grid:rowCount="2"
    grid:alignmentMode="alignBounds">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:text="Label1"
        android:id="@+id/textViewLabel1"
        grid:layout_row="0"
        grid:layout_column="0" />

    <TextView
        android:layout_width="0dp"
        grid:layout_gravity='fill_horizontal'
        android:layout_height="wrap_content"
        android:text="Value1"
        android:id="@+id/textViewValue1"
        grid:layout_row="0"
        grid:layout_column="1" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:text="Label2"
        android:id="@+id/textViewLabel2"
        grid:layout_row="1"
        grid:layout_column="0" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        grid:layout_gravity='fill_horizontal'
        android:text="Value2"
        android:id="@+id/textViewValue2"
        grid:layout_row="1"
        grid:layout_column="1" />
</android.support.v7.widget.GridLayout>

答案 1 :(得分:0)

    android:layout_width="wrap_content"
    android:layout_gravity="fill_horizontal"