将Android中网格布局的列设置为宽度的一半。

3

我有一个网格布局,其中有两张图片分别放在不同列中,但图片未填满所有可用空间。

我需要两列都是宽度的一半(现在左边的列比另一列大)。我该怎么做?

这是我目前的情况,但黑色碗占用了大部分空间...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res/com.whitepebbles"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity2" >

<android.support.v7.widget.GridLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    app:columnCount="4" >

    <TextView
        android:id="@+id/whiteBowl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_column="0"
        app:layout_gravity="center|top"
        app:layout_row="5" 
        android:background="@drawable/wbowl00"
        app:layout_columnSpan="2"/>

    <TextView
        android:id="@+id/blackBowl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_column="3"
        app:layout_columnSpan="2"
        app:layout_gravity="center"
        app:layout_row="5"
        android:background="@drawable/bbowl00" />

</android.support.v7.widget.GridLayout>


也许使用权重会有所帮助:\ - Rachit Mishra
我不确定在网格布局中权重是如何工作的... - Lou
我还没有测试过它...如果你能把代码贴出来,也许我可以更精确地帮助你。 - Rachit Mishra
我编辑了问题,包括代码。 - Lou
1个回答

1

我认为我通过支持库v7修订版21.0.2解决了这个问题(我使用3个TextView进行了测试):

<android.support.v7.widget.GridLayout
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:columnCount="3"
        >
        <TextView
            app:layout_columnWeight="1"
            app:layout_gravity="fill"
            android:text="1"
            />
        <TextView
            app:layout_columnWeight="1"
            app:layout_gravity="fill"
            android:text="2"
            />
        <TextView
            app:layout_columnWeight="1"
            app:layout_gravity="fill"
            android:text="3"
            />
</android.support.v7.widget.GridLayout>

上面的代码生成了一个包含三个 TextView 的单行,它使用了可用空间的 1/3。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接