Klasa Foo
ma zmienną List<Button> bar
, w jaki sposób mogę renderować każdy z przycisków za pomocą UiBinder? Czy to możliwe?GWT UiBinder w jakiś sposób mieć dynamiczną listę widżetów?
14
A
Odpowiedz
27
UiBinder jest XML szablon dla deklaratywnie układanie widżety i nie jest renderer. W związku z tym nie można mieć warunkowe, pętle i inne konstrukcje logiczne w XML UiBinder.
To, co możesz zamiast tego zrobić, to panel w UiBinder, który jest zwykłym symbolem zastępczym dla wszystkich przycisków, które chcesz umieścić. Uzyskaj odniesienie do pola Ui: do tego panelu w klasie Java. Przeprowadź pętlę przez listę przycisków i dodaj przyciski do panelu w kodzie Java, używając uchwytu pola.
Inne podejście polegałoby na zdefiniowaniu kompozytu i dodaniu kompozytu do modułu UiBinder, a następnie pozwoleniu kompozytowi na renderowanie samych przycisków. Tylko zależy od tego, co jest najlepsze dla twojego projektu.