我已經看過包括重力在內的各種解決方案,但還沒有找到我遇到的問題的答案,那就是網格內部的圖像按鈕佈局沒有跨越屏幕的寬度 - 看起來像下面這張圖片。他們更加聚集在左邊。我希望間距甚至可以跨越屏幕。謝謝您的幫助。如何將網格佈局中的圖像按鈕居中 - Android Studio
下面是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_admin_control"
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="com.example.myname.myproject.AdminControl">
<Button
android:text="Switch to User"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:id="@+id/userSwitch" />
<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/userSwitch"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:rowCount="2"
android:columnCount="3"
android:alignmentMode="alignMargins">
<ImageButton
app:srcCompat="@drawable/common_google_signin_btn_icon_dark"
android:layout_row="0"
android:layout_column="0"
android:layout_width="118dp"
android:layout_height="118dp"
android:scaleType="fitCenter"/>
<ImageButton
app:srcCompat="@drawable/common_google_signin_btn_icon_dark"
android:id="@+id/imageButton5"
android:layout_row="0"
android:layout_column="1"
android:layout_width="118dp"
android:layout_height="118dp"
android:scaleType="fitCenter"/>
<ImageButton
app:srcCompat="@drawable/common_google_signin_btn_icon_dark"
android:id="@+id/imageButton6"
android:layout_row="0"
android:layout_column="2"
android:layout_width="118dp"
android:layout_height="118dp"
android:scaleType="fitCenter"/>
<ImageButton
app:srcCompat="@drawable/common_google_signin_btn_icon_dark"
android:id="@+id/imageButton7"
android:layout_row="1"
android:layout_column="0"
android:layout_width="118dp"
android:layout_height="118dp"
android:scaleType="fitCenter"/>
<ImageButton
app:srcCompat="@drawable/common_google_signin_btn_icon_dark"
android:id="@+id/imageButton8"
android:layout_row="1"
android:layout_column="1"
android:layout_width="118dp"
android:layout_height="118dp"
android:scaleType="fitCenter"/>
<ImageButton
app:srcCompat="@drawable/common_google_signin_btn_icon_dark"
android:id="@+id/imageButton9"
android:layout_row="1"
android:layout_column="2"
android:layout_width="118dp"
android:layout_height="118dp"
android:scaleType="fitCenter"/>
</GridLayout>
</RelativeLayout>
謝謝,它的工作原理。只有一件事 - 網格佈局的高度是整個屏幕,但我希望它如上圖所示更小。我手動將佈局:網格佈局的高度參數設置爲300 dp。有一個更好的方法嗎? – kmindspark
如果你想使用定義的「高度」或「寬度」,你可以這樣做。但它可能會影響不同屏幕尺寸的佈局。如果你可以有效地使用「權重」,這是很好的。如果你想將'GridLayout'的'height'設置爲屏幕大小的一半,你可以使用'layout:height = 0dp'和'layout:weight = 1'。對此,父級應該是'LinearLayout'和'vertical orientation' –