Wie deaktiviere man die TextView maxLines programmgesteuert?

Ich habe eine harte Zeit, das maxLines Attribut eines TextView programmgesteuert zurückzusetzen.

Just versuchte Einstellung auf 0 und es funktioniert nicht. -1 stürzt die Anwendung ab. Ich könnte einen einfacheren Workaround verwenden und die maxLines auf 5000 maxLines , aber das will ich nicht.

  • Meine Android-HTML-Anwendung verliert Werte, die in localStorage gespeichert werden, wenn es heruntergefahren wird. Wer sonst noch?
  • Was ist der Unterschied zwischen Handler, Runnable und Threads?
  • Animierte neu hinzugefügte Elemente in ListView
  • Hat Android Widget wie das iPhone UIPickerView
  • IllegalStateException - Fragmentunterstützungsbibliothek
  • Hören auf Benachrichtigung auf Android
  • Irgendwelche Ideen, wie man das macht?

    AKTUALISIERT

    Nun, ich habe ein Problem gefunden .. Ich habe auch die Ellipse gesetzt … Ich werde nur die folgende Problemumgehung verwenden:

     TextView questionDetail = (TextView) mQuestionDetailHeader.findViewById(R.id.desc); questionDetail.setText(mCurrentQuestion.getQuestion()); questionDetail.setMaxLines(Integer.MAX_VALUE); //As in the android sourcecode questionDetail.setEllipsize(null); 

  • Api zum Zeichnen von Diagramm in android
  • EditText-Tabulatorreihenfolge
  • Anwendungsfehler: Diese Version der Anwendung ist nicht für Market Billing konfiguriert
  • Wie synchronisierst du Projekte mit Gino mit Android Studio?
  • Bedeutung der roten Farbe in Android's Nine-Patch-Ziehungen
  • Bild- und Videofilter wie Snapchat in Android
  • 4 Solutions collect form web for “Wie deaktiviere man die TextView maxLines programmgesteuert?”

    Da es noch keine genehmigte Antwort gibt – die richtige Möglichkeit, die maxlines-Eigenschaft des TextView zurückzusetzen, ist:

    textView.setMaxLines(Integer.MAX_VALUE);

    Wie nach Valdemars Kommentar und dieser Stackoverflow-Antwort . Mit -1 wird eine ArrayIndexOutOfBoundsException .

    MARQEE Sie nur MARQEE und MARQEE setEllipsize () -Einstellungen werden für maxlines> = 2 gemäß der Dokumentation beachtet:

    Wenn setMaxLines (int) verwendet wurde, um zwei oder mehr Zeilen einzustellen, werden END und MARQUEE * nur unterstützt (andere Ellipsentypen werden nichts tun).

    Die -1 sollte deine Anwendung nicht abstürzen. Dies tatsächlich, was in TextView standardmäßig verwendet wird:

     case com.android.internal.R.styleable.TextView_maxLines: setMaxLines(a.getInt(attr, -1)); break; 

    Dieses Stück von Code zeigt, dass, wenn android:maxLines nicht angegeben ist, dann Code verwendet -1 , um den Wert über setMaxLines() Funktion zu setzen.


    Ich habe auch Testantrag gemacht, um meine Schlussfolgerungen zu überprüfen. Und es geht gut, ohne zu stürzen:

     public class HelloWorld extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); TextView text = (TextView)findViewById(R.id.text); text.setMaxLines(-1); } } 

    Für die Einstellung der maxLines für einen Text verwenden Sie mTextView.setMaxLines (0) oder Sie müssen programmgesteuert den Höhentext messen und mit der Anzahl der maximalen Zeilen multiplizieren. Das Ergebnis sollte als Höhe des TextViews festgelegt werden

    Wenn du nur eine einzige Zeile haben willst, warum nimmst du denn nicht:

      txtView.setSingleLine(true); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.