Wir verwenden eine ExpandableList von TableViews, um einen Textblock mit Zeilennummern auf einer Seite anzuzeigen. Zuerst wird die Zeichenfolge für einen bestimmten Absatz in einer Textansicht in der rechten Spalte der TableView festgelegt. Dann wird eine Zeilennummernzeichenfolge aus der Absatzzeichenfolge und einer Startzeilennummer generiert. Zum Beispiel aus der Zeichenfolge (mit einem Startzeilennummer 1):Erkennen, ob TextView eine Zeile umschließt
Lorem ipsum dolor sit amet,
consectetur adipiscing elit.
Donec ultricies a nunc sit amet venenatis.
Aenean placerat dictum nunc,
nec pulvinar arcu consequat a.
Proin dignissim velit ut augue dictum ultricies.
Fusce lorem dolor, elementum id tempor at,
pellentesque eu dolor. Vestibulum rhoncus
arcu in sapien sagittis gravida.
Nullam vel nisl enim.
Maecenas scelerisque at quam non congue.
Nullam quis porttitor purus, nec interdum tellus.
die folgende Zeile Zahlenkette erzeugt wird:
\n\n\n\n5.\n\n\n\n\n10.\n\n
Diese Zeichenkette dann in der Spalte ganz links des Tableview platziert um die Zeilennummer der Zeichenfolge alle fünf Zeilen anzuzeigen.
Ein Problem tritt jedoch auf, wenn die Textgröße auf einen Punkt erhöht wird, an dem die Textzeilen umgebrochen werden (weil die Zeile zu groß ist, um auf den Bildschirm zu passen). Wenn dies geschieht, scheint es notwendig zu sein, ein anderes \ n in die Zeilennummernzeichenfolge an der Stelle des Zeilenumbruchs einzufügen, um die möglicherweise mehrere Zeilen des umbrochenen Textes als eine einzelne Zeile zu zählen. Gibt es also irgendwie für Android zu erkennen, ob eine Zeile in eine TextView eingebunden wurde, so dass das Programm wissen kann, dass ein \ n in den Zeilennummern-String eingefügt und Zeilenumbrüche ausgeglichen werden sollen?
Immer, wenn ich versuche, die getWidth() - Methode von textView zu verwenden, wird 1300 zurückgegeben, während die Funktion Werte im Bereich 200-300 für den Text zurückgibt. Doch die Linie wird immer noch umhüllt. Weißt du warum das so ist? – Paradoxian