2017-06-19 44 views
1

我正在嘗試製作一系列按鈕,類似於鍵盤,用於輸入紙牌。但是,網格佈局中按鈕的大小和位置與我測試的每個設備都不同。我正在尋找最好的解決方案將3列在屏幕上傳播。任何建議表示讚賞。也可能有更好的方法來做到這一點比我打開的gridlayout。正如你可能猜到的,我是新來的android。提前致謝!使GridLayout中的按鈕自動調整

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> 

回答

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>

+0

在這個佈局中,你可以刪除'RelativeLayout'標籤,使第一'的LinearLayout '你的根源。 – thorin86

+0

這很好,但由於開發人員想創建一個鍵盤,我認爲linearlayout應該保持鍵盤佈局 –

+0

這有助於很多,謝謝! –