LWUIT: schede - come contrassegnare la scheda attualmente selezionata
-
29-10-2019 - |
Domanda
Ho 4 schede.Ogni scheda è rappresentata da un pulsante.Questi pulsanti vengono utilizzati per selezionare la scheda attualmente visualizzata.Ogni pulsante ha un'icona e un testo.
Vorrei evidenziare la scheda attualmente selezionata cambiando il colore di sfondo e il colore dell'etichetta di testo del pulsante corrispondente.Mi piacerebbe farlo utilizzando Theme e Resource Editor.
Ho creato il tema e specificato stili non selezionati, selezionati e premuti per UIID "Tab".Le mie schede hanno un bell'aspetto in Sun WTK!Bene!Ma ho scoperto che su un telefono reale le schede sembrano sempre non selezionate.Ho provato su Nokia 5800 XPressMusic e C7.Perché la differenza?
Dopo alcuni esperimenti ho scoperto il motivo: i pulsanti possono essere solo in 2 stati: non selezionati e premuti.Non si trovano mai nello stato selezionato.Sull'emulatore, quando passo a un pulsante utilizzando i tasti di navigazione, viene selezionato.
Allora, cosa devo fare per contrassegnare la scheda corrente?
Soluzione 2
Ho implementato ciò di cui avevo bisogno.Grazie a Shai e al suo esempio.
Non ho utilizzato le proprietà del tema e ho effettuato tutte le personalizzazioni nel codice.L'ho fatto perché non ho capito come l'impostazione di UIID univoco possa aiutarmi, dal momento che il problema non è nell'identificazione dell'UIID per il quale gli oggetti di scena devono essere modificati, ma nell'identificare lo stile del pulsante da modificare.
Di seguito alcune note importanti della mia soluzione.
- Chiama
addActionListener
per i pulsanti DOPO che sono stati aggiunti alle schede. - Quando viene premuto un pulsante di tabulazione, aggiorna gli stili NON SELEZIONATI dei pulsanti di tabulazione.Inoltre puoi cambiare le loro icone.
- Chiama
repaint()
del modulo dopo il passaggio 2.
Altri suggerimenti
Puoi utilizzare diversi approcci, specialmente nella 1.5.
LWUIT 1.5 ha un componente Tabs che praticamente fa tutto per te ed è notevolmente flessibile.
Utilizza i pulsanti di opzione su cui viene invocato il metodo setToggleButton(true)
.I pulsanti di attivazione / disattivazione si comportano come pulsanti di opzione, quindi quando si preme un pulsante nel gruppo rimane premuto e viene visualizzato utilizzando lo stile ToggleButton (è possibile impostare l'UIID su quello che si desidera).Guarda un esempio di utilizzo dei pulsanti di attivazione / disattivazione nella parte dimostrativa dei caratteri della demo di LWUIT.
Un'opzione che funzionerà per le versioni precedenti di LWUIT è semplicemente impostare l'UIID del pulsante su un valore diverso quando viene premuto (e ripristinare l'UIID del pulsante selezionato in precedenza al valore originale).