2017-08-22 4 views
0

十分に試してみました。インターネットを検索しましたが、これを修正するために何ができるのか分かりません。GridLayoutでウェイトを設定できません

私は私のコードでこれがあります(私が欲しいものはどれ。)

enter image description here:私のIDE(アンドロイドSTUDIO 3.0)で

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

は、この表示されます

ただし、デバイス

enter image description here

どのようにこの問題を解決:次のように表示されますか? ありがとう!

+0

ボタンに 'android:layout_height =" 0dp "'を追加してみてください。 –

+0

こんにちは@Gokhan Arik、回答ありがとうございます。私は試しましたが、うまくいきません。画面全体にちょうど2つのボタンが表示されます。 –

+0

GridLayoutの親は何ですか? 4つのアイテムしかありませんか?私のデバイスではITが正常に見えます。 –

答えて

0

android api < 21、それはうまくいきませんでした。

コンパイルを追加できます。

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

あなたのXMLコードをこれに変更します。 com.android.support:gridlayout-v7:25.3.1

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

これは、新しい属性を持っていました。

  • アプリ:layout_columnWeight
  • アプリ:layout_rowWeight
  • アプリ:layout_rowSpan
  • アプリ:あなたは、あなたのコード内で使用することができますlayout_columnSpan

0

代わりに、テーブル形式を使用して、そこにボタンを割り当てることができます。これにより、コンパイル時にさまざまな画面で問題は発生しません。

関連する問題