2012-01-24 7 views
2

私はアンドロイドでTableLayoutを使用します。Androidでのレイアウトを改善しています。多分TableLayout?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <TableLayout 
    android:id="@+id/tableLayout1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" > 

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

     <TextView 
      android:layout_column="1" 
      android:text="@string/client" 
      android:width="150px" 
      style="@style/Infos" /> 

     <TextView 
      android:id="@+id/client" 
      android:layout_column="2" 
      android:width="200px" 
      style="@style/InfosPrincipale" /> 

     <TextView 
      android:layout_column="3" 
      android:text="@string/site" 
      android:width="150px" 
      style="@style/Infos" /> 

     <TextView 
      android:id="@+id/site" 
      android:layout_column="4" 
      android:width="200px" 
      style="@style/InfosPrincipale" /> 
    </TableRow> 

.... 

結果は、4列の幅が決定されたテーブルです。

私はタブレットを使用していますが、それは画面の半分を使用するため、ポートレートモードではかなりですが、風景ではありません。電話バージョンでは醜いと想像します。

私はいつも同じレイアウト、2つのテキストビューをリンクしています。 (同じ行にある必要があります)

画面のサイズに応じて表示することができるAndroidのレイアウトはありますか?または各列に25%の幅を設定する方法がありますか?

よろしく

答えて

2

本当に、あなたも

各セルlayout_widthは、それなしでは動作しません(0dpし、各セルlayout_weight(原文のまま!)25に設定してください1.

にweightSumを設定する必要はありません!)と、さらに100

行のためweightSum、あなたは完全に設定weightSumを逃れることができますが、レイアウトがより遅くなります。
方向によってテーブル構造を変更する場合は、コードでのみ行うことができます。 あなたの貧弱なコラムで何をしたいのかわかりませんが、可視性をGONEに変えてVISIBLEに戻すことができます。そして、あなたは目に見えるほど多くを見ることになります。しかし、体重は設定しないでください。または列の可視性と一緒に変更します。

+0

ありがとうございました –

2

これはのLinearLayoutとその要素で行うことができます(それは良いスタートになります)。 viewholderには1と等しいweightsum setというプロパティがあり、内部のビューにはlayoutwieghtというプロパティがあり、25%で25%に設定することができます。

+1

私はLinearLayoutを意味すると思いますが、ビューホルダーではない – aromero

+0

あなたは正しいです。それがテーブルレイアウトとしての滞在に役立つかどうかをチェックしてください。http://stackoverflow.com/questions/4326319/is-there-any-way-to-make-table-columns-equal-to-fraction-of合計幅は – L7ColWinters

2

0dpを除いて150pxのような絶対寸法を使用しないでください。

TableLayoutには、興味のある2つの属性、stretchColumnsshrinkColumnsがあります。

カラムの幅を0dp(使用可能なスペースを均等に分配したい場合)またはWRAP_CONTENT(各カラムに必要なスペースが最小になるように、残りの部分を加えたもの)を設定します。

また、TableLayoutの幅をFILL_PARENTに設定することもできます。