我有一个线性布局内的网格布局,并希望网格布局是水平居中(即。到左侧和右侧的距离相同):
<?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是居中的,但看起来不是这样,因为它不会紧密地包装其内容(右侧的Gridlayout内部仍然有“空白”),即使设置了layout_width="wrap_content"
。
发布于 2019-03-25 09:19:04
您需要使用stretchMode作为spacing width uniform,而不是none。将重力设置为中心。
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" />
https://stackoverflow.com/questions/55330000
复制相似问题