我在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内仍然有“空白”)
答案 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" />