线性布局中的中心网格布局

时间:2019-03-25 00:45:17

标签: android layout android-linearlayout

我在Linearlayout内有一个Gridlayout,并希望Gridlayout水平居中(即,左右之间的距离相同):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/outerLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="10pt"
    android:paddingRight="10pt"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">

    <GridView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gridview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:columnWidth="200px"
        android:horizontalSpacing="0dp"
        android:numColumns="auto_fit"
        android:stretchMode="none"
        android:verticalSpacing="0dp" />

    <Button
        android:id="@+id/startButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Start..."/>
</LinearLayout>

Gridlayout是居中的,但似乎不是居中,因为即使设置了layout_width="wrap_content",它也没有紧紧地包裹其内容(右侧Gridlayout内仍然有“空白”)

1 个答案:

答案 0 :(得分:0)

您需要使用 stretchMode 作为间距宽度均匀,而不是。将重力设置为中心

StretchMode 中还有两个选项。选中此link

<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:columnWidth="200px"
    android:gravity="center"
    android:horizontalSpacing="0dp"
    android:numColumns="auto_fit"
    android:stretchMode="columnWidth"
    android:verticalSpacing="0dp" />

enter image description here