GridLayout:垂直居中的行

时间:2014-02-10 19:03:18

标签: android android-layout

我无法垂直居中GridLayout中的行。在下面的代码中,行是“顶部对齐的”。我究竟做错了什么?到目前为止,我见过GridLayout的所有示例都填满了整个屏幕.Eclipse中的图形布局显示GridLayout的第二行超出了我预期的范围,超出了“总计”行。 enter image description here

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:alignmentMode="alignBounds"
android:background="@drawable/items_bg_rectangle"
android:columnCount="3"
android:columnOrderPreserved="false"
android:useDefaultMargins="true" >

<!-- 1st row -->

<ImageView
    android:id="@+id/itemUserImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dp"
    android:layout_marginRight="8dp"
    android:contentDescription="@string/itemUserImage"
    android:src="@drawable/silhouette_head" />

<TextView
    android:id="@+id/username"
    style="@style/ItemsTextView" />

<TextView
    android:id="@+id/grid02"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/nothing"
    android:textSize="20sp" />

<!-- 2nd row -->


<!-- 1st column -->

<TextView
    android:id="@+id/grid10"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/nothing"
    android:textSize="20sp" />

<!-- 2nd column -->

<TableLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginBottom="75dp"
    android:layout_marginRight="75dp" >

    <TableRow
        android:id="@+id/itemTableRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemCurrentGameText"
            style="@style/ItemsTextView"
            android:text="@string/currentGame1TextView" />
    </TableRow>

    <TableRow
        android:id="@+id/itemTableRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemGame1ItemText"
            style="@style/ItemsTextView"
            android:text="@string/itemGame1TextView" />

        <TextView
            android:id="@+id/itemGame1Item"
            style="@style/ItemsTextView"
            android:text="@string/nothing" />
    </TableRow>

    <TableRow
        android:id="@+id/itemTableRow3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemGame2ItemText"
            style="@style/ItemsTextView"
            android:text="@string/itemGame2TextView" />

        <TextView
            android:id="@+id/itemGame2Item"
            style="@style/ItemsTextView"
            android:text="@string/nothing" />
    </TableRow>

    <TableRow
        android:id="@+id/itemTableRow4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemGame3ItemText"
            style="@style/ItemsTextView"
            android:text="@string/itemGame3TextView" />

        <TextView
            android:id="@+id/itemGame3Item"
            style="@style/ItemsTextView"
            android:text="@string/nothing" />
    </TableRow>

    <TableRow
        android:id="@+id/itemTableRow5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemBonusItemText"
            style="@style/ItemsTextView"
            android:text="@string/itemBonusTextView" />

        <TextView
            android:id="@+id/itemBonusItem"
            style="@style/ItemsTextView"
            android:text="@string/nothing" />
    </TableRow>

    <TableRow
        android:id="@+id/itemTableRow6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemItemTotalText"
            style="@style/ItemsTextView"
            android:text="@string/itemTotalTextView" />

        <TextView
            android:id="@+id/itemItemTotal"
            style="@style/ItemsTextView"
            android:text="@string/nothing" />
    </TableRow>
</TableLayout>

<!-- 3rd column -->

<TableLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginRight="75dp" >

    <TableRow
        android:id="@+id/itemHighItemRow1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemHighItem1"
            style="@style/ItemsTextView"
            android:text="@string/highItems" />
    </TableRow>

    <TableRow
        android:id="@+id/itemHighItemRow2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemHighItem2"
            style="@style/ItemsTextView"
            android:layout_gravity="right|center"
            android:text="@string/defaultItem" />
    </TableRow>

    <TableRow
        android:id="@+id/itemHighItemRow3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemHighItem3"
            style="@style/ItemsTextView"
            android:layout_gravity="right|center"
            android:text="@string/defaultItem" />
    </TableRow>

    <TableRow
        android:id="@+id/itemHighItemRow4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemHighItem4"
            style="@style/ItemsTextView"
            android:layout_gravity="right|center"
            android:text="@string/defaultItem" />
    </TableRow>

    <TableRow
        android:id="@+id/itemHighItemRow5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemHighItem5"
            style="@style/ItemsTextView"
            android:layout_gravity="right|center"
            android:text="@string/defaultItem" />
    </TableRow>

    <TableRow
        android:id="@+id/itemHighItemRow6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/itemHighItem6"
            style="@style/ItemsTextView"
            android:layout_gravity="right|center"
            android:text="@string/defaultItem" />
    </TableRow>
</TableLayout>

2 个答案:

答案 0 :(得分:1)

尝试根据您的需求进行调整。祝你好运

     android:id="@+id/gridview"
     android:layout_width="match_parent"
     android:layout_height="400dp"

     android:layout_alignParentTop="true"
     android:layout_marginLeft="1dp"
     android:layout_marginRight="1dp"

     android:horizontalSpacing="2dp"
     android:listSelector="#00000000"
     android:numColumns="2"
     android:stretchMode="columnWidth"
     android:verticalSpacing="2dp" />

答案 1 :(得分:0)

至少到目前为止,我找到的最佳解决方案是设置useDefaultMargins="false",然后在顶部和底部添加空白行。

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="75dp"
android:layout_marginTop="75dp"
android:alignmentMode="alignBounds"
android:background="@drawable/items_bg_rectangle"
android:columnCount="3"
android:columnOrderPreserved="false"
android:gravity="center"
android:rowCount="4"
android:useDefaultMargins="false"
tools:context=".ItemsFragment" >

<!-- 1st row blank -->

<TextView
    android:id="@+id/grid10x"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_columnSpan="3"
    android:text="@string/nothing"
    android:textSize="20sp" />