web-dev-qa-db-ja.com

AndroidワードラップEditTextテキスト

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>
67
Bryan

問題の原因を見つけることに加えて、解決策を見つけました。 Android:inputTypeが使用されている場合、複数行のサポートを有効にするにはtextMultiLineを使用する必要があります。また、inputTypeを使用すると、コードAndroid:singleLine="false"。 inputTypeを使用する場合、繰り返すにはtextMultiLineを使用する必要があります。そうしないと、EditTextオブジェクトは1行のみで構成され、Wordの折り返しはありません。

編集:ありがとうJacob Mallietこれについてさらに良いアドバイスを提供してくれてありがとう。彼はブールのscrollHorizo​​ntallyプロパティを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" />
155
Bryan

わかりました。xmlのEditTextAndroid:scrollHorizontally="false"を設定する必要があります。これはうまくいくはずです。

18
Jacob Malliet

最初は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を増やすことで、行数を定義できます。

14
Hesam

私はそれを考え出した。この線、

Android:inputType="textCapSentences"

問題でした。この行をEditTextオブジェクトに追加すると、オブジェクトが1行のEditTextになり、単語が折り返されたり、ユーザーが「Enter」を押して改行またはキャリッジリターンをEditTextに挿入したりできなくなります。

9
Bryan

次の属性を編集テキストに追加する必要があります。

Android:inputType="textMultiLine"

また、高さを設定したり、edittextのmaxlinesを特定の値に設定した場合、多くの文字を入力するとスクロールします。

9
Özer Özcan

アクティビティ全体をスクロールビューで囲み、次の編集テキストを線形レイアウトで配置することは、私にとって魅力的でした。

編集テキストは、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" > 
6
San

これを試して、重力をトップに変更しました|左に入力タイプのテキストマルチラインと一緒に働いた

<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" />
1

また、親レイアウトの幅(Layout_widthプロパティ)を設定します。たとえば、layout_width = 250sp

それ以外の場合、EditTextまたはTextViewは、モバイル境界の最後に到達するまで次の行にラップしません。だからLayout_widthを定義する

0
Victor

実際にそれをしている人は、この質問を見てみたいかもしれません Android EditText Multilineは正常に機能しません 入力タイプを正しく設定していることを再確認します。それが私の問題でした

0
Jerry Sha