
Sono quindi arrivato alla conclusione che è necessario disporre di un nuovo contenitore, sottoclasse di net.rim.device.api.ui.Manager, che fornisca funzionalità analoghe, anche se più semplici, del GridBagLayout dell'AWT di Java.
Ho deciso di chiamarlo it.datafox.bb.ui.container.GridLayoutManager, in quanto permette di disporre i componenti visuali su una griglia (GridLayout), con un numero prefissato di righe e colonne, ciascuna delle quali ha una larghezza definita dall'utilizzatore, espressa come percentuale della larghezza totale dello schermo. Per garantire una maggiore flessibilità, ho reso possibile estendere ogni campo su un numero arbitrario di righe e colonne, utilizzando un meccanismo analogo a quello del colspan/rowspan dell'HTML. La schermata seguente mostra lo stesso gruppo di componenti disposti grazie al GridLayout, utilizzando una griglia con due colonne e diverse righe.


public FormScreen(int numRows, int numCols, float[] colWidthPercs, long style)
e i parametri forniscono le seguenti informazioni:
- numRows - numero di righe della griglia
- numCols - numero di colonne della griglia
- colWidthPercs - larghezza percentuale di ciascuna colonna
protected void add(Field field, int x, int y, int rowspan, int colspan)
I parametri forniscono le seguenti informazioni:
- field - campo che si vuole aggiungere allo schermo
- x - colonna della griglia in cui si vuole inserire il campo
- y - riga della griglia in cui si vuole inserire il campo
- rowspan - numero di righe occupate dal campo
- colpan - numero di colonne occupate dal campo
new TestScreen2(4, 3, new float[] { 30, 40, 30 },...)
e per aggiungere un'etichetta nella terza riga, in modo che la occupi tutta (colspan = 3) e che sia allineata al centro, si può scrivere in questo modo:
add(new LabelField("Label3", Field.FIELD_HCENTER), 0, 2, 1, 3)
Il codice sorgente del GridLayoutManager, del FormScreen e degli schermi di esempio riportati nelle schermate precedenti è scaricabile dal sito Web di DataFox. Ho testato questi componenti con tutti i simulatori dei dispositivi più recenti (dall'8100 al 9500) e il risultato è sempre stato positivo.
Restando in tema di sviluppo software per BlackBerry, vi segnalo un'interessante novità, cioè la nuova versione beta del plugin per Eclipse fornito da RIM. Questo rilascio è compatibile con Eclipse 3.4 e mette a disposizione tutti gli strumenti presenti nel JDE, come la firma del codice e la possibilità di scegliere la versione della libreria e del simulatore da utilizzare, integrandoli nel ben più potente ambiente di sviluppo Open Source. Da quando l'ho installato non ho riscontrato problemi e il suo utilizzo è veramente piacevole e produttivo, quindi lo consiglio a tutti quelli che realizzano software per BlackBerry.
Nessun commento:
Posta un commento