Creating user interface for Blackberry devices sometimes I have to create field which will hide and show themselves on forms. There are functions like insert, delete and add, but they usage require a lot's of effort because you have to specify index at which field has to be inserted. When there is a single optional dynamic field there is no big deal, but when there is two or more calculations for indexes take too much space and time. Reading javadoc I have found a very interesting function: replace. It will replace one field from manager with other unmanaged field.
placeHolderField.
getManager().
replace(placeHolderField, optionalField);
Placeholder field may be any field, I have used NullField - it has no width and no height. It is perfect for marking place where field should be inserted. To hide optional field replace field with placeholder.
Programując interfejs użytkownika na urządzenie Blackberry spotykam się czasem z potrzebą dynamicznego pokazywania i ukrywania kontrolek. Istnieją takie funkcje jak insert, delete oraz add, jednakże ich użycie jest kłopotliwe ze względu na to, że trzeba podać indeks na którym ma się znaleźć dany element. Przy jednym dynamicznie tworzonym polu nie jest to żadnym problemem, jednak, gdy tych pól jest więcej wyliczenia odpowiedniego indeksu zajmują zbyt dużo czasu i miejsca. Przeglądając dokumentację natrafiłem na bardzo interesującą funkcję: replace. Zamienia ono jedno z pól aktualnie będących wyświetlonych na inne, nie wyświetlane.
placeHolderField.
getManager().
replace(placeHolderField, optionalField);
Pole placeholdera może być dowolnym polem, ja użyłem pola NullField, bez szerokości, bez wysokości. Idealne do zapamiętania miejsca w którym znajdować będzie się dana kontrolka.
Aby ukryć opcjonalne pole robimy odwrotną zamianę, zamieniamy pole na placeholder.
Brak komentarzy:
Prześlij komentarz