我试图制作一系列按钮,有点像键盘,用于输入扑克牌。但是,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>
答案 0 :(得分:2)
我认为Linearlayout是一个很好的解决方案。您可以对行使用oriantation horizantal,当按钮宽度为0dp且权重为1时,它适合所有屏幕尺寸
<?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;