Erstellen Sie eine mehrzeilige EditText programmgesteuert

Ich versuche, einen mehrzeiligen EditText per Code zu erstellen. Dies ist, was ich benutze:

EditText txt = new EditText(this); lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, 1.0f); txt.setLayoutParams(lp); txt.setSingleLine(false); txt.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE); 

Aber es ist noch in einer einzigen Zeile. Irgendeine Hilfe?

  • Wie man multiline edittext in android macht
  • Android EditText: Done statt Enter oder Word Wrap statt Multi Line
  • Mehrzeilige in EditText-Ansicht in Android zulassen?
  • Ellipse funktioniert nicht richtig für eine mehrzeilige TextView mit einer beliebigen maximalen Höhe
  • Wie man multiline Strings in Android strings.xml Datei bearbeiten?
  • Android EditText nicht mehrzeilig
  • Einstellung SupportActionBar Untertitel multiline
  • Zwei Zeilentext für MenuItem
  • 7 Solutions collect form web for “Erstellen Sie eine mehrzeilige EditText programmgesteuert”

    Das sollte es tun

     txt.setSingleLine(false); txt.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION); 

    Sie können dies auch verwenden:

     txt.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE); 

    Die Kombination aller oben genannten Antworten war die richtige Antwort so hier ist es:

     texInput.setSingleLine(false); texInput.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION); texInput.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE); texInput.setLines(5); texInput.setMaxLines(10); texInput.setVerticalScrollBarEnabled(true); texInput.setMovementMethod(ScrollingMovementMethod.getInstance()); texInput.setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET); 

    Füge dies in deinem Code ein:

     txt.setLines(maxlines); 

    Maxlines ist die maximale Anzahl von Zeilen, die Sie in Ihrem EditText zulassen möchten.

    Die Kombination, die schließlich für mich gearbeitet hat, war:

     answerView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE); answerView.setSingleLine(false); 

    Zumindest habe ich setInputType für die Konfiguration von mehreren verschiedenen Optionen verwendet, so dass es mehr Sinn als einige der anderen Möglichkeiten.

    Versuche dies

     txt.setLines(number of lines); 

    Auf meinem telefon, änderung imeOptions und inputType tut nichts; EinstellbewegungMethod und / oder scrollBarStyle schraubt die Komponente so schlecht, dass der Benutzer keinen Text auswählen kann. IsVerticalScrollBarEnabled und isHorizontalScrollBarEnabled tut nichts; Das Beste, was ich tun konnte, ist zu benutzen

     txt.setSingleLine(false); 

    ( txt.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION); scheint unnötig zu sein), aber das zeigt keine Scrollbars im gottverdammten EditText an. Letztendlich gab ich auf und ich stelle ein Layout-Snippet auf, wenn ich einen mehrzeiligen EditText benötige. Hier ist das Layout:

     <?xml version="1.0" encoding="utf-8"?> <EditText xmlns:android="http://schemas.android.com/apk/res/android" android:inputType="textMultiLine" android:lines="4" android:minLines="4" android:gravity="top|start" android:maxLines="4" android:layout_height="wrap_content" android:layout_width="fill_parent" android:scrollbars="vertical" /> 

    Und hier ist Anko Snippet:

     fun ViewManager.multiLineEditText(@StyleRes theme: Int = 0, init: EditText.() -> Unit): EditText = ankoView( { ctx -> ctx.layoutInflater.inflate(R.layout.util_multilineedittext, this@multiLineEditText as ViewGroup, false) as EditText }, theme, init) 

    Entwicklung auf Android saugt so hart

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.