Ich habe versucht, mein EditText-Feld zum Zeilenumbruch zu bringen, kann es aber anscheinend nicht.
Ich habe mich bei der Entwicklung von Android-Anwendungen mit viel komplizierteren Problemen befasst, und dies scheint ein unkomplizierter Prozess zu sein.
Das Problem bleibt jedoch bestehen, und ich habe ein großes Textfeld, in das ich nur Text in einer Zeile eingeben kann. Fahren Sie geradeaus fort und scrollen Sie horizontal, wenn Sie Text eingeben.
Hier ist der XML-Code für das EditText-Objekt aus meiner Layoutdatei.
<?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:layout_width ="0dip"
? Es ist für mich unsichtbar, wie ich angenommen habe.layout_weight="1"
Attribut überschrieben . So könnte es in platziert werdenLinearLayout
.Ok ich es herausgefunden , Sie setzen müssen
android:scrollHorizontally="false"
für IhreEditText
in Ihrem xml. Ich bin mir ziemlich sicher, dass das funktionieren sollte.quelle
Lines
,minLines
.maxLines
undandroid:scrollHorizontally="false"
undinputType
kann es schaffen.Angenommen, Sie möchten zuerst nur eine Zeile haben, dann erweitern Sie sie auf 5 Zeilen und Sie möchten maximal 10 Zeilen haben.
<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"/>
Durch Erhöhen können
android:lines
Sie festlegen, wie viele Zeilen erweitert werden sollen.quelle
Sie müssen Ihrem Edittext das folgende Attribut hinzufügen.
Wenn Sie die Höhe oder die Maxline von edittext auf einen bestimmten Wert festlegen, wird ein Bildlauf durchgeführt, wenn Sie viel Zeichen eingegeben haben.
quelle
Ich habe es herausgefunden. Die Linie,
war das Problem. Durch Hinzufügen dieser Zeile zu einem EditText-Objekt wird das Objekt zu einer einzelnen Zeile EditText und es werden keine Wörter umbrochen, oder ein Benutzer kann die Eingabetaste drücken, um einen Zeilenvorschub oder einen Wagenrücklauf in den EditText einzufügen.
quelle
android:inputType="textCapSentences|textMultiLine"
stattdessen. Dann beginnt Ihr EditText-Feld mit Großbuchstaben und ist mehrzeilig. Für mich geht das! Jetzt sehe ich, dass Sie das oben sowieso in einer separaten Antwort angegeben haben ...Das Einschließen der gesamten Aktivität in die Bildlaufansicht und das Platzieren des folgenden Bearbeitungstextes in einem linearen Layout war für mich ein Zauber.
Der Bearbeitungstext würde sich vertikal durch Drücken der Eingabetaste scrollen, Code wie folgt
<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" >
quelle
"Enter somehting"
: D Aber wen interessiert das?) #TypoVersuchen Sie dies, indem Sie die Schwerkraft nach oben | links ändern, was für mich zusammen mit der Textmultiline vom Eingabetyp funktioniert hat
<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" />
quelle
top|start
anstelle vontop|left
für RTL-Unterstützung.Wenn Sie dies programmgesteuert tun, sollten Sie sich diese Frage ansehen. Android EditText Multiline funktioniert nicht ordnungsgemäß, um zu überprüfen, ob Sie den Eingabetyp richtig eingestellt haben. Das war mein Problem
quelle
Stellen Sie auch die übergeordnete Layoutbreite , (Layout_width Eigenschaft) . Zum Beispiel layout_width = 250sp
Andernfalls wird EditText oder TextView nicht in die nächste Zeile umgebrochen, bis das Ende des mobilen Rahmens erreicht ist. Definieren Sie also die Layoutbreite
quelle
Hinweis: Schritt 1 - Erstellen Sie eine benutzerdefinierte Klasse für
EditText
wordWrap.Android hat diese Eigenschaft nicht. Sie können jedoch alle unterbrochenen Zeichen durch ReplacementTransformationMethod ersetzen.
public class WordBreakTransformationMethod extends ReplacementTransformationMethod { private static WordBreakTransformationMethod instance; private WordBreakTransformationMethod() {} public static WordBreakTransformationMethod getInstance() { if (instance == null) { instance = new WordBreakTransformationMethod(); } return instance; } private static char[] dash = new char[] {'-', '\u2011'}; private static char[] space = new char[] {' ', '\u00A0'}; private static char[] original = new char[] {dash[0], space[0]}; private static char[] replacement = new char[] {dash[1], space[1]}; @Override protected char[] getOriginal() { return original; } @Override protected char[] getReplacement() { return replacement; } }
Schritt 2 - Schreiben Sie in Aktivität den folgenden Code:
In Android:
In Kotlin:
In XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <EditText android:id="@+id/myEditText" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:inputType="textCapSentences|textMultiLine" android:scrollHorizontally="false" /> </LinearLayout>
quelle
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/table" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="1" > <TableRow android:id="@+id/newRow"> <LinearLayout android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="wrap_content" android:gravity="left" android:paddingBottom="10dip"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Some Text" /> </LinearLayout> </TableRow> <View android:layout_height="2dip" android:background="#FF909090" /> <TableRow> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingTop="10dip"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Some Text" android:paddingBottom="5dip" /> <EditText android:id="@+id/editbox" android:layout_width="wrap_content" android:layout_height="150px" android:gravity="top" android:inputType="textFilter" android:scrollHorizontally="false" /> </RelativeLayout> </TableRow> <TableRow> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/btnone" android:layout_width="3dip" android:layout_height="wrap_content" android:layout_margin="2dip" android:layout_weight="1" android:text="Btn" /> <Button android:id="@+id/btntwo" android:layout_width="3dip" android:layout_height="wrap_content" android:layout_margin="2dip" android:layout_weight="1" android:text="Btn" /> </LinearLayout> </TableRow> </TableLayout>
quelle