2011-06-20 4 views
4

TableRowで固定幅のEditTextウィジェットを取得しようとすると、私は完全に立ち往生しています。 2つのEditTextを同じ幅(約20dpi)で並べて配置しようとしていますが、どのプロパティを試しても、最初のEditTextを長く設定してもサイズは変更できません。TableRow内のAndroid固定幅EditText

感謝:

<TableRow 
    android:layout_height="wrap_content" 
    android:baselineAligned="false" 
    android:id="@+id/tableRow3" 
    android:gravity="center" 
    android:stretchColumns="1" 
    android:layout_width="match_parent"> 
    <TextView 
    android:id="@+id/textView6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="1" 
    android:paddingLeft="36dip"> 
    </TextView> 
    <EditText 
    android:layout_height="wrap_content" 
    android:id="@+id/editText2" 
    android:inputType="number" 
    android:layout_width="20dip"> 
    </EditText> 
    <EditText 
    android:layout_height="wrap_content" 
    android:id="@+id/editText1" 
    android:inputType="number" 
    android:layout_width="wrap_content"> 
    <requestFocus></requestFocus> 
    </EditText> 
</TableRow> 
+0

Philさん、あなたの質問に答えた場合、正しい答えを記入してください:)ありがとうございます! – Codeman

+0

申し訳ありません、現在マークされています。 – Phil

答えて

15

フィル、

私はTableLayoutこれを行うための最善の方法であることを知らないあなたは、大量のデータを表示している場合を除き、それは面倒なことができ、それを使用する必要があります。

フォームオブジェクトの長さが、必要な方法で分散されていることを確認するための最良の方法の1つは、明示的に幅を宣言するのではなく、ウェイトを使用することです。

は、以下のことを試してみてください。

<LinearLayout ... android:orientation="horizontal" ... 
android:layout_width="match_parent" android:layout_height="wrap_content" 
<TextView ... android:layout_width="0dp" ... android:layout_weight="50" /> 
<TextView ... android:layout_width="0dp" ... android:layout_weight="50" /> 
</LinearLayout> 

このレイアウトは、重量に記入できるようになる、0としてレイアウト幅を宣言することを確認します。

これは、画面上に互いに隣り合う2つのTextViewを作成する必要があり、どちらも画面の50%を占めます。さまざまなパーセンテージで遊ぶことができます。 LinearLayoutは、保持する%の任意の値のプレースホルダとしても使用できます。

"ウェイト"が100になっていることを確認して、ビューが見た目に正確に見えるようにします。

これが役に立ちます。

+0

多くのお返事ありがとう、私は配置しようとしているし、動作しないコンポーネントであるEditTextのためにこれを試してみました。正直言って、何か基本的なものが欠けているかもしれないと思う。私はチュートリアルに戻り、それらを実行します。回答ありがとうございます:) – Phil

+0

Pheonixbladeが50でウェイトを設定している理由が分かりませんが、幅0を宣言して通常どおり(1、2などで)ウェイトを使用すると、同じ列幅が表示されます。 fill_parentと言うように幅を設定すると、TextViewの内容によって列の幅が決まります。 – ryandlf

+0

私はちょうど私が何が起こっていることを知っていることを確認するための標準としてweightSumとして100を使用して、あなたが望む任意の体重を使用することができます。 :) – Codeman

6

Based on this answer

あなたEditTextにこのプロパティを追加します。私のために

android:layout_weight="1" 

作品。

+0

それは動作し、受け入れられた答えより簡単です – zoom

関連する問題