Ich hatte über eine Woche lang damit zu kämpfen und fand schließlich heraus, wie ich das zum Laufen bringen kann!
Mein Problem war, dass alles als "Block" scrollen würde. Der Text selbst wurde gescrollt, aber nicht als Zeile für Zeile, sondern als Block. Das hat bei mir offensichtlich nicht funktioniert, weil es unten Linien abschneiden würde. Alle vorherigen Lösungen haben bei mir nicht funktioniert, deshalb habe ich meine eigenen erstellt.
Hier ist die mit Abstand einfachste Lösung:
Erstellen Sie eine Klassendatei mit dem Namen 'PerfectScrollableTextView' in einem Paket, kopieren Sie diesen Code und fügen Sie ihn ein:
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.TextView;
public class PerfectScrollableTextView extends TextView {
public PerfectScrollableTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
public PerfectScrollableTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
public PerfectScrollableTextView(Context context) {
super(context);
setVerticalScrollBarEnabled(true);
setHorizontallyScrolling(false);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
if(focused)
super.onFocusChanged(focused, direction, previouslyFocusedRect);
}
@Override
public void onWindowFocusChanged(boolean focused) {
if(focused)
super.onWindowFocusChanged(focused);
}
@Override
public boolean isFocused() {
return true;
}
}
Ändern Sie schließlich Ihre 'TextView' in XML:
Von: <TextView
Zu: <com.your_app_goes_here.PerfectScrollableTextView
maxLines
müssen Sie eine beliebige Nummer eingeben; Dies ist nicht etwas, das für jede Bildschirmgröße und Schriftgröße funktioniert? Ich finde es einfacher, es einfach mit einem zu versehenScrollView
, was bedeutet, dass ich keine weiteren XML-Attribute oder Code hinzufügen muss (wie das Festlegen der Bewegungsmethode).