同じ水平線上にEditText
とButton
を並べて設定しています。ユーザーが大量のテキストを入力した場合、EditText
のサイズが変更され、Button
がつぶされた場合を除き、見栄えがよくなります。
EditText
とButton
の両方をlayout_width="wrap_content"
に設定しています。 "fill_parent"
はレイアウトを台無しにします。必要がなければ絶対サイズを使いたくはありません-ランドスケープとポートレートの両方で見栄えが良くなりました。ただEditText
サイズを変更します。
私のレイアウト:
<TableLayout
Android:id="@+id/homelayout"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent" >
<TableRow>
<TextView
Android:id="@+id/labelartist"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="Find artists:" />
</TableRow>
<TableRow>
<EditText
Android:id="@+id/entryartist"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_weight="6"
Android:background="@Android:drawable/editbox_background"
Android:editable="true"
Android:padding="5px"
Android:singleLine="true" />
<Button
Android:id="@+id/okartist"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:layout_marginLeft="10dip"
Android:layout_weight="1"
Android:text="Search" />
</TableRow>
</TableLayout>
EditTextの使用
Android:layout_width="0dp" - not required but preferred.
Android:layout_weight="1"
また、ボタンにはAndroid:layout_weight
を指定しないでください
アクティビティのonCreateで、EditTextを最初に測定してから、そのmaxWidthを適用します。
これは、次のようなコードを使用して実行できます。
EditText someedittext = (EditText)findViewById(R.id.sometextview);
someedittext.setMaxWidth(someedittext.getWidth());
EditText
にmaxWidth
を指定します。これにより、指定した幅を超えたサイズ変更が停止します。また、1行に収めたい場合は、maxLines
設定も1に設定します。
ただ使用する:
Android:layout_width="fill_parent"
editTextとButtonの両方に対して。 EditTextでも機能しますが、両方に設定する方が適切です。
上に示すように、編集テキストのサイズを定義できます
Android:minWidth="80dp"
Android:maxWidth="80dp"
または
Android:layout_width="60dp"
または
希望するサイズの背景画像を適用できますが、wrap_contentで高さと幅を定義することを忘れないでください。
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
これを行う正しい方法は、Android:minWidthとAndroid:maxWidthを希望の幅に設定することです。これにより、Android:layout_weightを使用するためにレイアウトを調整する必要がなくなります。
たとえば、入力する文字数に関係なく、EditTextを常に80密度ピクセルにしたい場合は、次を使用します。
Android:minWidth="80dp"
Android:maxWidth="80dp"
選択したソリューションは動作しますが、少し補足を追加します。Android:layout_weight="0.15"
を使用する場合(値は重要ではありません)
それからAndroid:layout_width="0dp"
LinearLayout
が水平の場合
またはAndroid:layout_height="0dp"
LinearLayout
が垂直の場合。
正確なクエリがありました。しかし、私は線形レイアウトでEditTextとボタンが隣り合っていました。 Android:layout_weight = "1" for EditText Android:layout_width = "0dp"を試しましたが、完璧に機能しました!!どうもありがとう!
私は同様の問題を抱えていましたが、上記を機能させることができませんでした。私がしたことは、EditTextボックスからテキストを取得し、それを画面が処理できる最大サイズにフォーマットすることです。これをDBに保存すると、表示テキストおよび元のテキストとして保存されます。
もしあなたが このページへ 行くなら、私はもっと長い説明をします。