2012-04-04 16 views
2

TableLayoutの行を画面の中央に配置できません。私は4x4のクリック可能なイメージのテーブルを作成しようとしており、それらを画面の中央に配置したいと考えています。それを左に並べて描くことで終わります。私はそれらをどちらかの側のスペースに集中させたいと思います。ここにコードがあります:TableLayoutの行を中央に配置できない

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TableLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="20dp"> 

     <TableRow android:layout_gravity="center_horizontal"> 

      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" 
       android:layout_gravity="center" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" 
       android:layout_gravity="center" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" 
       android:layout_gravity="center" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" 
       android:layout_gravity="center" /> 

     </TableRow> 

     <TableRow android:layout_gravity="center_horizontal"> 

      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" /> 

     </TableRow> 

     <TableRow android:layout_gravity="center_horizontal"> 

      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" /> 
      <ImageView android:src="@drawable/rocket" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:padding="3dp" />    
     </TableRow> 

    </TableLayout> 


</LinearLayout> 

何か提案がありますか?

+1

を変更してみてください幅= "wrap_content "テーブルの行に移動し、それが動作するかどうかを確認 – ByteMe

+0

android:layout_gravity to android:gravityがトリックでした!私はそれを試していないとは信じられませんが、ありがとう!違いが何であるかについてのアイデアは? – bieno002

答えて

5

通常、layout_gravityを使用して整列します。

は、あなたのコード内の

android:gravity="center_horizontal" 

を試してみてください。

android:gravityは、データを水平中央に揃えます。

9

アンドロイドで試してみてください。 layout_gravity = "center_horizo​​ntal" あなたの場合は

<TableRow android:layout_gravity="center_horizontal" 
      android:layout_weightsum = "4"> 

       <ImageView android:src="@drawable/rocket" 
        android:layout_width="60dp" 
        android:layout_height="60dp" 
        android:padding="3dp" 
        android:layout_weight = "1" /> 
       <ImageView android:src="@drawable/rocket" 
        android:layout_width="60dp" 
        android:layout_height="60dp" 
        android:padding="3dp" 
        android:layout_weight = "1" /> 
       <ImageView android:src="@drawable/rocket" 
        android:layout_width="60dp" 
        android:layout_height="60dp" 
        android:padding="3dp" 
        android:layout_weight = "1" /> 
       <ImageView android:src="@drawable/rocket" 
        android:layout_width="60dp" 
        android:layout_height="60dp" 
        android:padding="3dp" 
        android:layout_weight = "1" />    
      </TableRow> 
+0

android:layout_weightsum - 非推奨と思われる – NBaua

1

、bieno002を次のように、あなたの<TableLayout>"wrap_content"からlayout_widthセットがあることを確認してください。これは両側で呼吸するためのスペースを与えます。

次に、<TableLayout>ノードにandroid:layout_gravity="horizontal"を追加してください。これと同じように:問題が解決しない場合、私はアンドロイドを追加し :<重力= "center_horizo​​ntal" のTableRowアンドロイド>:に :

<TableLayout android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal"> 
    <TableRow> 
     <TextView (or whatever)> 
     <TextView (or whatever)> 
    </TableRow> 
</TableLayout> 
関連する問題