Xamarin.Forms: ListView in StackLayout: Wie setze ich die Höhe?
In einem ContentPage
ich habe eine ListView
innerhalb einer StackLayout
innerhalb einer ScrollView
. Die ListView
aufgefüllt (ItemSource
festgelegt ist) in der ContentPage
wenn OnAppearing
aufgerufen wird, und ich kann sehen, dass die Liste aufgefüllt, in der die emulator. Die StackLayout
s Orientierung ist Vertical
- und unterhalb der ListView
ich habe eine Button
.
Mein problem ist, dass egal, wie viele Elemente die ListView
hat, wird er der Höhe von 53,33. Ich möchte die Höhe der ListView
entsprechend der Bauhöhe der Elemente in es. Durch die Einstellung HeightRequest
ich kann die Höhe des ListView
auf alles, was ich will, aber da weiß ich nicht, die Höhe der Elemente innerhalb der ListView
das Ergebnis ist meist, dass der Abstand auf die Schaltfläche unten, es ist falsch und daher hässlich aussieht. Ich habe es versucht VerticalOptions
sowohl auf der ListView
und die StackLayout
zu Start
- und anderen Einstellungen, aber das ändert nichts an der Höhe von 53.33 (und wenn ich versuche zu kombinieren mit HeightRequest
und Start
es stellt sich heraus, dass HeightRequest gewinnt).
Wie kann ich dieses Problem lösen?
(bitte entschuldigt das cross-posting aus Xamarin forum)
InformationsquelleAutor der Frage Halvard | 2014-07-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Lösung in meinem Fall war es die
ListView
innerhalb einerStackLayout
und dann setzen, dassStackLayout
innerhalb der main -StackLayout
. Dann könnte ich dieVerticalOptions = LayoutOptions.FillAndExpand
auf die innereStackLayout
(mit derListView
) mit dem Ergebnis, dass dieListView
bekam den Platz, den es benötigt (was natürlich variiert, je nach Daten).Hier ist der Haupt-code:
Wie Sie sehen, ich habe eine neue
StackLayout
mit dem einzigen Zweck, indem derListView
drin. Dann legte ich, dasslistStackLayout
innerhalb der main -_stackLayout
.Siehe den Beitrag auf diese Xamarin forum posten weitere Informationen
InformationsquelleAutor der Antwort Halvard
Ich lief in das gleiche problem, und für mich funktioniert wie ein Charme:
(http://developer.xamarin.com/guides/cross-platform/xamarin-forms/working-with/listview/#Display_Rows_with_Variable_Heights)
InformationsquelleAutor der Antwort Norbor Illig
Code unten arbeitete für mich,
InformationsquelleAutor der Antwort Vinod Kumar
Ich hatte das gleiche problem, und das war das einzige, was ich habe, dass für mich gelöst (in XAML):
Hoffe, es funktioniert!
InformationsquelleAutor der Antwort Marcio Martins
Ich hatte einen ähnlichen Kampf, mit einer etwas anderen Lösung. Erstens, die Einrichtung eines RowHeight auf die ListView zu sein schien entscheidend. Zweitens, ich lief in ein verbindliches + timing-Problem. Wenn das ListView angezeigt wurde und hatte keinen Inhalt, es wurde auf ein Standard-Höhe (zeigt den leeren Raum). Wenn ich Weg bewegt von dieser Seite aus, und kam zurück, die Größe war in Ordnung.
Also mein Ansatz war, zu binden, das ListView Sicht der Anwesenheit (oder Abwesenheit) etwas an. Dann, wenn die Daten kamen herein, der ListView sichtbar wurde, und hatte die richtige Größe.
InformationsquelleAutor der Antwort BRass
Auf Android, meine Tabelle erzeugt im code war, dass Lücken oben und unten.
Diese Feste...
Ich denke, dass ich das hackiest Lösung.
InformationsquelleAutor der Antwort Ian Warburton