2012-02-08 22 views
0

私は、2 x 2 GridViewに等しいサイズのTextViewsを4つにしたいGridViewを持っています。 TextViewをGridViewのそれぞれの象限の中央に配置します。Android GridViewの書式設定

私の最初の問題は、何もセンタリングがないということです。すべてが左に重くなる。私の2番目の問題は、列の幅を使用可能な幅の50%にすることができますが、行の高さを使用可能な高さの50%に調整する方法がわかりません。体重は片方しか動かないようです。

<GridView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/MyGrid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="5dp" 
    android:verticalSpacing="5dp" 
    android:horizontalSpacing="10dp" 
    android:numColumns="2" 
    android:columnWidth="400dp" 
    android:stretchMode="columnWidth" 
    android:layout_weight=".5" 
    android:gravity="center"> 
</GridView> 

縦画面表示 enter image description here

横画面表示 enter image description here

答えて

1

何が多分たいの代わりにTableLayoutを使用することです。 GridViewは、項目があるListViewに似ていますが、この場合、不定期ではなく4つの項目しか持たないとします。

のGridView

のGridViewは、二次元、スクロール可能なグリッド内のアイテムを表示するのViewGroupあります。グリッド項目は、ListAdapterを使用してレイアウトに自動的に挿入されます。

TableLayout

TableLayoutは、行と列での子ビューの要素を表示するのViewGroupです。

ここでは動作しますXMLの抜粋です:

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/MyGrid" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight=".5" 
    android:gravity="center" 
    android:padding="5dp" 
    android:stretchColumns="0,1" > 

    <TableRow 
     android:id="@+id/tableRow1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" > 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="Large Text" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 
    </TableRow> 

</TableLayout>