以编程方式在Android网格布局中对齐视图

时间:2014-09-12 15:54:40

标签: android

我有三种不同类型的视图(视图1,视图2,视图3)。我有一个viewSupplierClass,它以任何顺序和任何数字返回这些视图。 (例如:视图1,视图2,视图2,视图2,视图3,视图1,视图3,视图2,......)。现在我需要按照我得到的顺序将它们安排在Activity中,而不留空格。

我选择使用gridLayout执行此操作并将这些视图分类为矩阵(i,e View 1 - 2X2,View 2 1X2,View 3 -1X1)。但是我的输出并不像预期的那样。我在两者之间得到空格,因为视图的大小不同。 有人可以帮助我找到更好的解决方案或指出我的错误。

这是我的代码和输出:

活动

private void addViews() {
        for (position = 0; position <= totalItems; position++) {
            LayoutSupplierClass layout = new LayoutSupplierClass(this, position);
            gridLayout.addView(layout);
        }
    }

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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=".MainActivity" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/text">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <GridLayout
                android:id="@+id/gridLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:columnCount="2"
                tools:context=".GridXMLActivity" >
            </GridLayout>

            <Button
                android:id="@+id/customize"
                android:layout_width="300dp"
                android:layout_height="50dp"
                android:layout_alignParentBottom="true"
                android:layout_below="@id/gridLayout"
                android:layout_centerHorizontal="true"
                android:text="@string/customize " />
        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

0 个答案:

没有答案