Ich verwende Tablerow + TextView, um eine einfache Ansicht für Blogposts und ihre Antworten zu erstellen. In jeder TableRow habe ich eine TextView eingefügt. Jetzt habe ich zwei Probleme:
Der Text, der länger als der Bildschirm ist, wird nicht automatisch als mehrzeilig dargestellt. Ist es von Design von TableRow? Ich habe bereits tr_content.setSingleLine(false);
[update] eingestellt Dies wurde angesprochen, ich denke, ich sollte Fill_parent in Wrap_content in textView ändern.% Co_de%
Die Tabelle scrollt nicht wie ListView. Meine Zeilen sind größer als die Bildschirmgröße. Ich gehe davon aus, dass die Tabelle genau wie ListView zur Ansicht gescrollt werden kann. Ist das möglich?
Hier ist mein Code:
%Vor%Das ist nicht wirklich eine vollständige Antwort, aber es scheint wirklich, als ob du das auf die harte Tour machst.
Anstatt Ihre TableRows manuell zu erstellen, sollten Sie sie wie folgt in XML einrichten:
tablearw.xml:
%Vor%Beziehen Sie sich vor Ihrer Schleife auf einen LayoutInflater:
%Vor%Erstellen Sie dann innerhalb Ihrer Schleife eine Instanz von tabrowrow mit dem LayoutInflater:
%Vor%Damit können Sie Layout, Aussehen und Layoutparameter in XML einstellen, was das Lesen und Debuggen wesentlich erleichtert.
Für das Scroll-Problem müssen Sie Ihr TableLayout zu einer ScrollView hinzufügen. So etwas in deinem xml:
%Vor%Eine sinnvollere Sache für das Umhüllen von Gegenständen wäre das Hinzufügen von android: shrinkColumns="*" oder android: shrinkColumns="1" zum TableLayout gewesen, dies hätte das Umbruchproblem wahrscheinlich behoben.
Standardmäßig passen TableLayout-Zeilen an die Breite ihres Inhalts an, unabhängig davon, ob sie über die Bildschirmgrenzen hinausgeht. Verwenden Sie das android:shrinkColumns
-Attribut für TableLayout, um die Textzellen, die breiter als der Bildschirm sind, in mehrzeilige Zeilen umzuwandeln.
android:shrinkColumns
ist ein auf Null basierender Index der Spalten, die verkleinert werden sollen . Es entfernt unnötigen zusätzlichen Speicherplatz aus einer Spalte und verkleinert es:
android:shrinkColumns="*"
verkleinert alle Spalten android:shrinkColumns="0"
verkleinert die erste Spalte android:shrinkColumns="1,2"
verkleinert die zweite und dritte Spalte android:stretchColumns
macht das Gegenteil. Es streckt eine Spalte auf die maximal verfügbare Breite.
Sowohl "shrink" als auch "stretch" berücksichtigen alle Zeilen der Tabelle, um Speicherplatz zu berechnen.
Wenn dein TableLayout
höher als der Bildschirm ist, verschiebe es in ein ScrollView
.
Tags und Links android textview tablelayout tablerow