在GridLayout中使按钮自动调整

时间:2017-06-19 21:54:30

标签: android xml button

我试图制作一系列按钮,有点像键盘,用于输入扑克牌。但是,gridlayout中按钮的大小和位置与我测试的每个设备不同。我正在寻找在屏幕上展开3列的最佳解决方案。任何建议表示赞赏。还有一个更好的方法来做到这一点,而不是我打开的gridlayout。你可能猜到,我是android的新手。提前谢谢!

XML代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                xmlns:app="http://schemas.android.com/apk/res-auto">


<GridLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentStart="true"
    android:layout_marginBottom="8dp"
    android:columnCount="3"
    android:rowCount="5">

    <Button
        android:id="@+id/buttonK"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="King"/>

    <Button
        android:id="@+id/buttonD"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="Delete"/>

    <Button
        android:id="@+id/buttonG"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="Go!"/>

    <Button
        android:id="@+id/button10"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="10"/>

    <Button
        android:id="@+id/buttonJ"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="Jack"/>

    <Button
        android:id="@+id/buttonQ"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="Queen"/>

    <Button
        android:id="@+id/button7"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="7"/>

    <Button
        android:id="@+id/button8"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="8"/>

    <Button
        android:id="@+id/button9"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="9"/>

    <Button
        android:id="@+id/button4"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="4"/>

    <Button
        android:id="@+id/button5"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="5"/>

    <Button
        android:id="@+id/button6"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="6"/>

    <Button
        android:id="@+id/buttonA"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="Ace"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="2"/>

    <Button
        android:id="@+id/button3"
        android:layout_width="128dp"
        android:layout_height="50dp"
        android:text="3"/>
</GridLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:2)

我认为Linearlayout是一个很好的解决方案。您可以对行使用oriantation horizantal,当按钮宽度为0dp且权重为1时,它适合所有屏幕尺寸

&#13;
&#13;
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentBottom="true">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

        <Button
            android:id="@+id/buttonK"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="50dp"
            android:text="King"/>

        <Button
            android:id="@+id/buttonD"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="50dp"
            android:text="Delete"/>

        <Button
            android:id="@+id/buttonG"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="50dp"
            android:text="Go!"/>
            <Button
                android:id="@+id/button10"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="50dp"
                android:text="10"/>
        
        </LinearLayout>


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <Button
                android:id="@+id/buttonK1"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="50dp"
                android:text="King"/>

            <Button
                android:id="@+id/buttonD1"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="50dp"
                android:text="Delete"/>

            <Button
                android:id="@+id/buttonG1"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="50dp"
                android:text="Go!"/>
            <Button
                android:id="@+id/button101"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="50dp"
                android:text="10"/>

        </LinearLayout>
        
    </LinearLayout>

</RelativeLayout>
&#13;
&#13;
&#13;