2015-12-27 2 views
0

Я использовал сетку, чтобы разместить сетку 8x8 кнопок на экране. Поскольку я новичок в Android, я не уверен, как сделать это подходящим для всех кнопок, поскольку они должны быть на всех разных телефонах Android.Как выровнять кнопки для размещения на всех платформах Android?

Например, когда у меня есть сетка 8x8 на виртуальном Nexus 6, кнопки идеально подходят. Однако на Nexus 7 имеется дополнительное пространство между левыми строками и краем экрана, а также правыми строками и краем правой стороны экрана. А затем на Nexus 4 кнопки 7-го и 8-го столбцов отключены от экрана.

Я уверен, что вы понимаете, что я пытаюсь сделать, поэтому, если кто-то может помочь мне понять это, что будет оценено!

В соответствии с просьбой XML макет:

<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> 

+0

Опубликуйте свой макет xml. – Abdullah

+0

Это довольно длинный, так как есть более 60 кнопок, но я буду. –

+0

Код был опубликован. –

ответ

0

Пользователь GridLayout с layout_columnWeight в колонках и установить их layout_width="0dp".

<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" /> 

... 

Если вы ориентируетесь уровень API ниже 14, то вы можете использовать android.support.v7.widget.GridLayout.

+0

Где я могу добавить "android.support.v7.widget.GridLayout"? Также благодарим вас за быстрый ответ. Тем не менее, когда я добавляю этот код, кнопка просто исчезает ... –

+0

Добавьте 'compile 'com.android.support: gridlayout-v7: 23.1.1'' в ваш проект elvel build.gradle' dependencies'. – Abdullah

+0

Изменено 'layout_width =" match_parent "'. – Abdullah

Смежные вопросы