EditTextボックスをWordでラップしようとしましたが、実行できないようです。
Androidアプリケーションの開発中に、はるかに複雑な問題に対処しましたが、これは簡単なプロセスであるように思われます。
ただし、問題は残っており、1つの行にテキストを入力するだけの大きなテキストボックスがあり、テキストを入力すると水平方向にスクロールします。
レイアウトファイルのEditTextオブジェクトのXMLコードを次に示します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
Android:id="@+id/myWidget48"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
>
<ScrollView
Android:id="@+id/myScrollView"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
>
<LinearLayout
Android:id="@+id/widget37"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
>
<EditText
Android:id="@+id/txtNotes"
Android:layout_width="300px"
Android:layout_height="120px"
Android:scrollbars="vertical"
Android:textSize="18sp"
Android:gravity="left"
Android:layout_marginTop="10dip"
Android:inputType="textCapSentences"
>
</EditText>
</LinearLayout>
</ScrollView>
</LinearLayout>
問題の原因を見つけることに加えて、解決策を見つけました。 Android:inputType
が使用されている場合、複数行のサポートを有効にするにはtextMultiLineを使用する必要があります。また、inputTypeを使用すると、コードAndroid:singleLine="false"
。 inputTypeを使用する場合、繰り返すにはtextMultiLineを使用する必要があります。そうしないと、EditTextオブジェクトは1行のみで構成され、Wordの折り返しはありません。
編集:ありがとうJacob Mallietこれについてさらに良いアドバイスを提供してくれてありがとう。彼はブールのscrollHorizontallyプロパティをfalseに設定することを提案しました、'Android:scrollHorizontally="false"'
。
XMLコードの例:
<EditText
Android:id ="@+id/edtInput"
Android:layout_width ="0dip"
Android:layout_height ="wrap_content"
Android:layout_weight ="1"
Android:inputType="textCapSentences|textMultiLine"
Android:maxLines ="4"
Android:maxLength ="2000"
Android:hint ="@string/compose_hint"
Android:scrollHorizontally="false" />
わかりました。xmlのEditText
にAndroid:scrollHorizontally="false"
を設定する必要があります。これはうまくいくはずです。
最初は1行だけにしてから5行に拡張し、最大10行にする必要があるとします。
<EditText
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/etMessageBox"
Android:layout_alignParentLeft="true"
Android:layout_centerVertical="true"
Android:autoLink="all"
Android:hint="@string/message_edit_text_hint"
Android:lines="5"
Android:minLines="1"
Android:gravity="top|left"
Android:maxLines="10"
Android:scrollbars="none"
Android:inputType="textMultiLine|textCapSentences"/>
Android:lines
を増やすことで、行数を定義できます。
私はそれを考え出した。この線、
Android:inputType="textCapSentences"
問題でした。この行をEditTextオブジェクトに追加すると、オブジェクトが1行のEditTextになり、単語が折り返されたり、ユーザーが「Enter」を押して改行またはキャリッジリターンをEditTextに挿入したりできなくなります。
次の属性を編集テキストに追加する必要があります。
Android:inputType="textMultiLine"
また、高さを設定したり、edittextのmaxlinesを特定の値に設定した場合、多くの文字を入力するとスクロールします。
アクティビティ全体をスクロールビューで囲み、次の編集テキストを線形レイアウトで配置することは、私にとって魅力的でした。
編集テキストは、Enterを押すと垂直にスクロールします。コードは次のとおりです。
<EditText
Android:id="@+id/editText1"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:ems="10"
Android:hint="Enter somehting"
Android:inputType="textMultiLine"
Android:maxLength="2000"
Android:maxLines="6"
Android:scrollHorizontally="false"
Android:scrollbars="vertical" >
これを試して、重力をトップに変更しました|左に入力タイプのテキストマルチラインと一緒に働いた
<EditText
Android:layout_width="200dp"
Android:layout_height="match_parent"
Android:layout_gravity="center"
Android:background="@color/color_red"
Android:focusable="true"
Android:focusableInTouchMode="true"
Android:gravity="top|left"
Android:inputType="textMultiLine|textCapSentences"
Android:lines="10"
Android:maxWidth="200dp"
Android:maxLength="200"
Android:maxLines="10"
Android:singleLine="false"
Android:textColor="@Android:color/white"
Android:textSize="26sp" />
また、親レイアウトの幅、(Layout_widthプロパティ)を設定します。たとえば、layout_width = 250sp
それ以外の場合、EditTextまたはTextViewは、モバイル境界の最後に到達するまで次の行にラップしません。だからLayout_widthを定義する
実際にそれをしている人は、この質問を見てみたいかもしれません Android EditText Multilineは正常に機能しません 入力タイプを正しく設定していることを再確認します。それが私の問題でした