【问题标题】:GridLayout support width issueGridLayout 支持宽度问题
【发布时间】:2013-12-08 09:19:11
【问题描述】:

我正在使用 support v7 GridLayout,但正如许多其他人指出的那样,它不能正确测量其子宽度。

在这个question 中,有一个解决方法,但该解决方法对我来说是随机的,对于某些值它有效,而对于某些子值它不起作用。

建议的解决方法:

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

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

【问题讨论】:

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


【解决方案1】:

我使用您提到的解决方法解决了问题,建议在这里: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>

【讨论】:

    【解决方案2】:
        android:layout_width="wrap_content"
        android:layout_gravity="fill_horizontal"
    

    【讨论】:

    • 您能否详细说明为什么这段代码可以解决问题?
    猜你喜欢
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多