2012-10-13 4 views
11

Ich weiß, dass verschiedene Fragen zu diesem Thema zuvor gestellt wurden, aber ich kann keine Antwort für mein Problem finden. Ich arbeite an einer Android-Anwendung und ich möchte ein EditText-Feld erweitern, wie der Benutzer in es eingibt. Ich möchte, dass es zuerst eine Mindestgröße hat und erweitert wird, wenn der Benutzer mehr eingibt, als das Minimum erlaubt. Hier ist mein Code so weit:Machen Sie EditText wachsen, wie es gefüllt ist

<ScrollView 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    android:fillViewport="true" > 

    <linearLayout 
     android:layout_height="match_parent" 
     android:layout_width="wrap_content" 
     android:orientation="vertical" 
     android:padding="5dp" > 

     <linearLayout> 
      ...content... 
     </linearLayout> 

     <linearLayout> 
      ...content... 
     </linearLayout> 

     <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textMultiLine" 
     android:lines="7" 
     android:gravity="top" /> 

    </linearLayout> 
</ScrollView> 

Das EditText Feld ist innerhalb des übergeordneten Linearlayout, innerhalb des übergeordneten Scroll. Es sieht auf dem Bildschirm gut aus, aber wenn ich über die siebte Zeile im Bearbeitungstextfeld gehe, muss ich einen Trackball verwenden, um durch das Textfeld zurückzugehen. Wenn Sie den Bildschirm scrollen, scrollt der gesamte Bildschirm. Kann mir jemand ein paar Tipps geben? Ich habe versucht, verschiedene Vorschläge zu ähnlichen Fragen zu implementieren, aber keine hat mir die richtige Antwort gegeben. Danke

+1

Ich bin nicht klar auf Ihre Frage, wenn Sie wollen, dass es wächst weiter entfernen: 'android: lines =" 7 "'. – Sam

+0

@Sam Wie behalte ich dann das editText-Feld in einer bestimmten Größe? Ich möchte nicht, dass es eine kleine Box ist. Ich möchte, dass es eine große Box ist, um mit – adohertyd

+0

anzufangen. Hast du 'android: minHeight' und' android: minWidth' probiert? – Sam

Antwort

12

Wie @tozka in den Kommentaren in einer Layoutdatei angegeben hat, geben Sie an: android:minLines="" statt android:lines="".

In Java: editText.setMinLines(int) anstelle von editText.setLines(int).

In C# (Mono für Android) editText.SetMinLines(int) anstelle von editText.SetLines(int).

Vom Android docs:

public void setMinLines (int minlines)

macht das Textview wenigstens diese vielen Zeilen hoch. Wenn Sie diesen Wert festlegen, wird jede andere (minimale) Höheneinstellung überschrieben.

Verwandte Themen