Java 如何在所有Android平台上对齐按钮?
我使用网格布局在屏幕上放置了一个8x8的按钮网格。由于我是Android新手,我不确定如何使它适合所有的按钮,因为它们应该适用于所有不同的Android手机 例如,当我在虚拟Nexus 6上安装了8x8网格时,按钮就非常适合。然而,在Nexus7上,屏幕左侧的行和边缘之间以及屏幕右侧的行和边缘之间有额外的空间。然后在Nexus4上,第7列和第8列按钮不在屏幕上 我相信你理解我想表达的观点,如果有人能帮助我理解,我将不胜感激 根据要求,XML布局:Java 如何在所有Android平台上对齐按钮?,java,android,xml,android-studio,Java,Android,Xml,Android Studio,我使用网格布局在屏幕上放置了一个8x8的按钮网格。由于我是Android新手,我不确定如何使它适合所有的按钮,因为它们应该适用于所有不同的Android手机 例如,当我在虚拟Nexus 6上安装了8x8网格时,按钮就非常适合。然而,在Nexus7上,屏幕左侧的行和边缘之间以及屏幕右侧的行和边缘之间有额外的空间。然后在Nexus4上,第7列和第8列按钮不在屏幕上 我相信你理解我想表达的观点,如果有人能帮助我理解,我将不胜感激 根据要求,XML布局: <RelativeLayout xmlns
<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: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"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".GameActivity"
tools:showIn="@layout/activity_game">
<GridLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/gridLayout">
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile0"
android:layout_row="0"
android:layout_column="0" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile1"
android:layout_row="0"
android:layout_column="1" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile2"
android:layout_row="0"
android:layout_column="2" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile3"
android:layout_row="0"
android:layout_column="3" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile4"
android:layout_row="0"
android:layout_column="4" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile5"
android:layout_row="0"
android:layout_column="5" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile6"
android:layout_row="0"
android:layout_column="6" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile7"
android:layout_row="0"
android:layout_column="7" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_row="1"
android:layout_column="0"
android:id="@+id/tile8" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile9"
android:layout_row="1"
android:layout_column="1" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile10"
android:layout_row="1"
android:layout_column="2" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile11"
android:layout_row="1"
android:layout_column="3" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile12"
android:layout_row="1"
android:layout_column="4" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile13"
android:layout_row="1"
android:layout_column="5" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile14"
android:layout_row="1"
android:layout_column="6" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile15"
android:layout_row="1"
android:layout_column="7" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile16"
android:layout_row="2"
android:layout_column="0" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile17"
android:layout_row="2"
android:layout_column="1" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile18"
android:layout_row="2"
android:layout_column="2" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile19"
android:layout_row="2"
android:layout_column="3" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile20"
android:layout_row="2"
android:layout_column="4" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile21"
android:layout_row="2"
android:layout_column="5" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile22"
android:layout_row="2"
android:layout_column="6" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile23"
android:layout_row="2"
android:layout_column="7"
android:layout_below="@+id/gridLayout"
android:layout_alignStart="@+id/gridLayout" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile24"
android:layout_row="3"
android:layout_column="0"
android:layout_below="@+id/tile23"
android:layout_alignLeft="@+id/gridLayout" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile25"
android:layout_row="3"
android:layout_column="1"
android:layout_below="@+id/tile24"
android:layout_alignLeft="@+id/gridLayout" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile26"
android:layout_row="3"
android:layout_column="2"
android:layout_alignBottom="@+id/tile25"
android:layout_toEndOf="@+id/tile25" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile27"
android:layout_row="3"
android:layout_column="3"
android:layout_above="@+id/tile26"
android:layout_toRightOf="@+id/tile25" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile28"
android:layout_row="3"
android:layout_column="4"
android:layout_above="@+id/tile27"
android:layout_toRightOf="@+id/tile25" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile29"
android:layout_row="3"
android:layout_column="5"
android:layout_below="@+id/tile30"
android:layout_toRightOf="@+id/tile27" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile30"
android:layout_row="3"
android:layout_column="6"
android:layout_alignTop="@+id/tile27"
android:layout_toEndOf="@+id/tile27" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile31"
android:layout_row="3"
android:layout_column="7"
android:layout_above="@+id/tile27"
android:layout_toEndOf="@+id/tile27" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile32"
android:layout_row="4"
android:layout_column="0"
android:layout_below="@+id/gridLayout"
android:layout_toEndOf="@+id/tile31" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile33"
android:layout_row="4"
android:layout_column="1"
android:layout_above="@+id/tile29"
android:layout_toEndOf="@+id/tile29" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile34"
android:layout_row="4"
android:layout_column="2"
android:layout_alignBottom="@+id/tile29"
android:layout_toEndOf="@+id/tile29" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile35"
android:layout_row="4"
android:layout_column="3"
android:layout_alignTop="@+id/tile32"
android:layout_toEndOf="@+id/tile32" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile36"
android:layout_row="4"
android:layout_column="4"
android:layout_alignBottom="@+id/tile33"
android:layout_toEndOf="@+id/tile33" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile37"
android:layout_row="4"
android:layout_column="5"
android:layout_alignTop="@+id/tile34"
android:layout_toEndOf="@+id/tile34" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile38"
android:layout_row="4"
android:layout_column="6"
android:layout_above="@+id/tile36"
android:layout_toEndOf="@+id/tile35" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile39"
android:layout_row="4"
android:layout_column="7"
android:layout_above="@+id/tile36"
android:layout_toEndOf="@+id/tile38" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile40"
android:layout_row="5"
android:layout_column="0"
android:layout_above="@+id/tile36"
android:layout_toEndOf="@+id/tile39" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile41"
android:layout_row="5"
android:layout_column="1"
android:layout_above="@+id/tile37"
android:layout_toEndOf="@+id/tile36" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile42"
android:layout_row="5"
android:layout_column="2"
android:layout_above="@+id/tile37"
android:layout_toEndOf="@+id/tile41" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile43"
android:layout_row="5"
android:layout_column="3"
android:layout_above="@+id/tile37"
android:layout_toEndOf="@+id/tile42" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile44"
android:layout_row="5"
android:layout_column="4"
android:layout_alignStart="@+id/tile41"
android:layout_alignBottom="@+id/tile37" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile45"
android:layout_row="5"
android:layout_column="5"
android:layout_toEndOf="@+id/tile44"
android:layout_alignBottom="@+id/tile37" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile46"
android:layout_row="5"
android:layout_column="6"
android:layout_above="@+id/gridLayout"
android:layout_alignStart="@+id/gridLayout" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile47"
android:layout_row="5"
android:layout_column="7"
android:layout_alignTop="@+id/tile46"
android:layout_alignStart="@+id/tile28" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile47"
android:layout_row="6"
android:layout_column="0"
android:layout_above="@+id/gridLayout"
android:layout_alignStart="@+id/tile31" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile49"
android:layout_row="6"
android:layout_column="1"
android:layout_above="@+id/gridLayout"
android:layout_alignStart="@+id/tile32" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile50"
android:layout_row="6"
android:layout_column="2"
android:layout_above="@+id/gridLayout"
android:layout_alignStart="@+id/tile35" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile51"
android:layout_row="6"
android:layout_column="3"
android:layout_above="@+id/tile50" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile52"
android:layout_row="6"
android:layout_column="4"
android:layout_below="@+id/tile51"
android:layout_toStartOf="@+id/tile39" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile53"
android:layout_row="6"
android:layout_column="5"
android:layout_below="@+id/tile51" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile54"
android:layout_row="6"
android:layout_column="6"
android:layout_above="@+id/tile46"
android:layout_toStartOf="@+id/tile47" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile55"
android:layout_row="6"
android:layout_column="7"
android:layout_above="@+id/gridLayout"
android:layout_toEndOf="@+id/tile52" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile56"
android:layout_row="7"
android:layout_column="0"
android:layout_alignTop="@+id/tile45"
android:layout_toEndOf="@+id/tile45" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile57"
android:layout_row="7"
android:layout_column="1"
android:layout_above="@+id/tile47"
android:layout_alignStart="@+id/tile47" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile58"
android:layout_row="7"
android:layout_column="2"
android:layout_above="@+id/tile49"
android:layout_alignStart="@+id/tile49" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile59"
android:layout_row="7"
android:layout_column="3"
android:layout_above="@+id/tile50"
android:layout_alignStart="@+id/tile50" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile60"
android:layout_row="7"
android:layout_column="4"
android:layout_alignBottom="@+id/tile59"
android:layout_alignStart="@+id/tile52" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile61"
android:layout_row="7"
android:layout_column="5"
android:layout_above="@+id/tile52"
android:layout_toEndOf="@+id/tile52" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile62"
android:layout_row="7"
android:layout_column="6"
android:layout_above="@+id/gridLayout"
android:layout_toEndOf="@+id/tile55" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tile63"
android:layout_row="7"
android:layout_column="7"
android:layout_above="@+id/tile55"
android:layout_toEndOf="@+id/tile55" />
</GridLayout>
用户
GridLayout
在列中使用layout\u columnWeight
并设置其layout\u width=“0dp”
...
如果您的目标API级别低于14,那么您可以使用
android.support.v7.widget.GridLayout
发布您的布局xml。它相当长,因为有60多个按钮,但我会发布。代码已经发布。我在哪里添加“android.support.v7.widget.GridLayout”?也感谢您的快速回复。但是,当我添加代码时,按钮就消失了……添加compile'com.android.support:gridlayout-v7:23.1.1'
到您的project elvel build.gradledependencies
部分。更改了布局\u width=“match\u parent”
。
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/gridLayout">
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/tile0"
android:layout_row="0"
android:layout_column="0"
android:layout_columnWeight="1" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/tile1"
android:layout_row="0"
android:layout_column="1"
android:layout_columnWeight="1" />
...