Ich habe zwei Layouts vertikal gleicher Breite erstellt. Und ich habe String-Daten, die in der Textansicht dynamisch angezeigt werden. Wenn die Zeichenfolge größer als die Breite des Layouts ist, wird die Zeichenfolge an die Breite des Layouts angehängt und für die verbleibende Zeichenfolge möchte ich dynamisch ein neues TV erstellen. Dieser Prozess endet, bis der verbleibende String endet. Für die nächste Zeichenfolge wird der gleiche Prozess fortgesetzt. Wenn der Prozess das Ende von linearlayout1 erreicht, sollte die verbleibende Zeichenfolge von linearlayout2 beginnen. Und der Prozess wird fortgesetzt bis zum Ende von linearlayout2.
Ich habe es versucht
%Vor%Illustration
Mögliche Lösung 1
Was Sie brauchen, ist ein FlowLayout, hier . Grundsätzlich muss der Text umlaufen, statt nach rechts überlaufen.
Mögliche Lösung 2
Versuchen Sie stattdessen, eine Webansicht zu verwenden und den Text in zwei Webansichten zu füllen. Das wird schneller mit weniger Code und nicht als fehlerhaft.
Ich habe FlowLayout nur verwendet, wenn ich jedes Wort einzeln anklicken musste. Im Grunde genommen ein Test für Grammatik, bei dem Leute die Teile der Sprache des Satzes auswählen. Dafür brauchte ich Zuhörer bei jedem Wort.
Das Folgende ist eine Idee, die ich mir ausgedacht habe (natürlich habe ich zuerst versucht, nach einer eingebauten Methode von TextViwe zu suchen, die das tut, was Sie brauchen, aber keines finden konnte):
Legen Sie fest, wie viele Zeilen in jedem der Layouts (links und rechts) je nach Bildschirmgröße angezeigt werden sollen (this.getResources (). getDefaultDisplay () und dann nach der richtigen Methode suchen), den gewünschten Text Größe und die Abstände zwischen den Layouts und zwischen dem Text und den oberen / unteren Kanten. Vergessen Sie nicht, dass Sie möglicherweise Pixel in Dips konvertieren müssen oder umgekehrt, da die meisten Methoden zur Größenbestimmung von Android-Größe die Größe in Pixel angeben.
Legen Sie die maximale Anzahl von Zeilen für jeden der Fernseher fest (tv.setLines ()).
Setzt den gesamten Text auf das linke Fernsehgerät.
Nun wird die erste Hälfte des Textes auf dem linken Fernsehgerät angezeigt. Der andere Teil des Textes wird ausgeblendet, weil Sie die maximale Anzahl von Zeilen im TV erreicht haben. Also, benutze getText (), um den aktuell im TV angezeigten Text zu erhalten (hoffentlich gibt dies nur die erste Hälfte des Textes zurück ... habe das noch nicht ausprobiert, sorry. Wenn nicht, gibt es vielleicht eine getDisplayedText () Methode oder so). Jetzt können Sie mit einfachen Java-Methoden nur den remining Teil des Textes aus dem ursprünglichen Text (ein Teilstring) abrufen und auf den zweiten Fernseher einstellen.
Ich hoffe, das hilft.
Tags und Links android android-layout android-linearlayout android-textview