2017-08-22 4 views
0

Ich habe genug versucht, im Internet gesucht und ich weiß nicht, was ich tun kann, um das zu beheben.Ich kann kein Gewicht in GridLayout setzen

ich in meinem Code haben dies:

<GridLayout 
 
     android:id="@+id/GridLayout1" 
 
     android:layout_width="match_parent" 
 
     android:layout_height="match_parent" 
 
     android:columnCount="2" 
 
     android:rowCount="2" 
 
     android:background="#f11" 
 
     > 
 

 
     <Button 
 
      android:id="@+id/button1" 
 
      android:layout_gravity="fill" 
 
      android:layout_columnWeight="1" 
 
      android:layout_rowWeight="1" 
 
      android:layout_row="0" 
 
      android:layout_column="0" 
 
      android:text="Button"/> 
 

 
     <Button 
 
      android:id="@+id/button2" 
 
      android:layout_gravity="fill" 
 
      android:layout_columnWeight="1" 
 
      android:layout_rowWeight="1" 
 
      android:layout_row="0" 
 
      android:layout_column="1" 
 
      android:text="Button"/> 
 

 
     <Button 
 
      android:id="@+id/button3" 
 
      android:layout_gravity="fill" 
 
      android:layout_columnWeight="1" 
 
      android:layout_rowWeight="1" 
 
      android:layout_row="1" 
 
      android:layout_column="0" 
 
      android:text="Button"/> 
 

 
     <Button 
 
      android:id="@+id/button4" 
 
      android:layout_gravity="fill" 
 
      android:layout_columnWeight="1" 
 
      android:layout_rowWeight="1" 
 
      android:layout_row="1" 
 
      android:layout_column="1" 
 
      android:text="Button"/> 
 

 

 

 

 
    </GridLayout>

In meiner IDE (ANDROID STUDIO 3.0) erscheinen diese: (. Das ist, was ich will)

enter image description here

Aber in Geräten erscheinen wie folgt aus:

enter image description here

Wie dieses Problem beheben? Danke!

+0

Versuchen Sie, 'android: layout_height =" 0dp "' zu den Tasten –

+0

Hallo @ Gokhan Arik, danke für die Antwort. Ich habe es versucht, funktioniert aber nicht. Erscheinen nur 2 Tasten auf dem gesamten Bildschirm. –

+0

Was ist das übergeordnete Element von GridLayout? Hast du nur 4 Gegenstände? Auf meinem Gerät sieht es gut aus. –

Antwort

0

Wenn Android api < 21, hat es nicht gut funktioniert.

So können wir kompilieren hinzufügen.

compile 'com.android.support:gridlayout-v7:25.3.1' 

Und ändern Sie Ihren XML-Code zu diesem.

<android.support.v7.widget.GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/GridLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#f11" 
    app:columnCount="2" 
    app:rowCount="2"> 

<Button 
    android:id="@+id/button1" 
    android:text="Button" 
    app:layout_column="0" 
    app:layout_columnWeight="1" 
    app:layout_gravity="fill" 
    app:layout_row="0" 
    app:layout_rowWeight="1"/> 

<Button 
    android:id="@+id/button2" 
    android:text="Button" 
    app:layout_column="1" 
    app:layout_columnWeight="1" 
    app:layout_gravity="fill" 
    app:layout_row="0" 
    app:layout_rowWeight="1"/> 

<Button 
    android:id="@+id/button3" 
    android:text="Button" 
    app:layout_column="0" 
    app:layout_columnWeight="1" 
    app:layout_gravity="fill" 
    app:layout_row="1" 
    app:layout_rowWeight="1"/> 

<Button 
    android:id="@+id/button4" 
    android:text="Button" 
    app:layout_column="1" 
    app:layout_columnWeight="1" 
    app:layout_gravity="fill" 
    app:layout_row="1" 
    app:layout_rowWeight="1"/> 

</android.support.v7.widget.GridLayout> 

Hinweis

Im com.android.support:gridlayout-v7:25.3.1

Es neues Attribut hatte.

  • App: layout_columnWeight
  • App: layout_rowWeight
  • App: layout_rowSpan
  • App: layout_columnSpan

Sie in Ihrem Code verwenden können.

0

Stattdessen können Sie das Tabellenformat verwenden und die Schaltflächen dort leicht zuweisen, was bei der Kompilierung in verschiedenen Bildschirmen kein Problem verursacht.