2012-02-08 70 views
0

我有一個GridView,我想要在2 x 2 GridView中使用4個相同大小的TextView。我希望TextViews在GridView各自的象限中居中。Android GridView格式化

我的第一個問題是什麼都沒有集中。一切都傾向於左邊。我的第二點是,雖然我可以將列寬調整到可用寬度的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>