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.

  • Welche Programmiersprachen kann ich auf Android Dalvik verwenden?
  • Wie man alle Fragmente in ViewPager neu erstellt:
  • So ändern Sie die Hinweisgröße von TextInputLayout
  • Break on Variable Wertänderung in Android Studio 1.1.0?
  • SoundPool-Fehler: keine weiteren Spurnamen verfügbar
  • Android: Wie kann ich Runnable stoppen?
  • 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); 

  • Unterschied zwischen den Signaturversionen - V1 (Jar Signature) und V2 (Full APK Signature) beim Generieren von signierten apk in AndroidStudio?
  • Wie man die Farbe von TextinputLayout's Label und Edittext unterstreichen Android zu ändern
  • Warum ist nicht view.invalidate sofort neu zeichnen den Bildschirm in meinem Android-Spiel
  • PreferenceFragment Hintergrundfarbe
  • 3.2 sdk Plattform installieren Problem. "Erledigt. Nichts wurde installiert "
  • Unterschiede zwischen verschiedenen Bool-Typen?
  • 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.