ユーザーが入力しているときに、EditTextがそれ自体のサイズを変更しないようにするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1408781

質問

同じ水平線上に隣り合わせに設定された 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:imeOptionsを追加する必要があります。

ここをクリック

上に示すように、編集テキストのサイズを定義できます

android:minWidth="80dp"
android:maxWidth="80dp"

または

android:layout_width="60dp"

または

必要なサイズの背景画像を適用できます しかし、その高さと幅を定義することを忘れないでください wrap_contentで。

  android:layout_width="wrap_content"
  android:layout_height="wrap_content"

同様の問題が発生しましたが、上記を機能させることができませんでした。私がやったことは、EditTextボックスからテキストを取得し、画面が処理できる最大サイズにフォーマットすることです。これをDBに保存すると、表示テキストおよび元のテキストとして保存されます。

このページにアクセスした場合、より長い説明を付けます。

これを行う正しい方法は、android:minWidthとandroid:maxWidthを希望の幅に設定することです。これにより、android:layout_weightを使用するためにレイアウトを調整する必要がなくなります。

たとえば、入力する文字数に関係なく、EditTextを常に80密度ピクセルにしたい場合は、次を使用します。

android:minWidth="80dp"
android:maxWidth="80dp"

正確なクエリがありました。しかし、私は線形レイアウトでEditTextとボタンが隣り合っていました。 android:layout_weight =&quot; 1&quot;を試しました。 EditTextの場合         android:layout_width =&quot; 0dp&quot; そしてそれは完璧に機能しました!! どうもありがとう!

選択したソリューションは機能しますが、少し補足してみましょう。
使用する場合 android:layout_weight =&quot; 0.15&quot; (値は重要ではありません)
その後
LinearLayout が水平の場合、 android:layout_width =&quot; 0dp&quot;
または
LinearLayout が垂直の場合、 android:layout_height =&quot; 0dp&quot;

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top