Domanda

Panoramica
Sto utilizzando una classe ListField per visualizzare una serie di informazioni in senso verticale. Ogni riga di quella ListField occupa 2/5 ° della dell'altezza dello schermo.

In quanto tale, quando si scorre alla voce successiva (soprattutto quando si visualizza un elemento parzialmente oscurata da vincoli di l'altezza dello schermo), l'intera azione di scorrimento / messa a fuoco è molto nervosa.

Vorrei risolvere questo nervosismo mediante l'attuazione di scorrimento continuo tra di scorrimento / concentrare le azioni. Questo è possibile con la classe ListField?

Esempio
Di seguito è riportato uno screenshot che visualizza la questione a portata di mano.

alt text
(fonte: perkmobile.com )

Una volta che l'utente scorre giù per fila ListFieldTHREE, questa riga è "scorrere" in vista in maniera molto nervosa, senza scorrimento continuo. So che fare l'altezza della riga minore sarà mitigare questo problema, ma non wan di andare in quel modo.

principale domanda
Come faccio scorrimento uniforme in un ListField?

È stato utile?

Soluzione

Supponendo che si desidera che il comportamento che l'utente scorre verso il basso 1 'scatto' della trackball, e l'ordine del giorno reca poi evidenziato ma invece di un rotolo immediato salto si ottiene un rotolo liscio per rendere il nuovo elemento visibile (come in Google Gmail per BlackBerry), si dovrà rotolare il proprio componente.

L'idea di base è quella di creare una sottoclasse VerticalFieldManager, poi in un libro (chiave fuori il metodo moveFocus) si ha un aggiornamento thread separato una variabile posizione verticale, e invalidare il manager più volte.

Il filo è necessario perché se ci pensate si sta guidando un'animazione fuori di un evento utente - il rotolo liscio è davvero un'animazione sul BlackBerry, che dura più a lungo di quanto l'evento che ha attivato lo

Sono stato un po 'vago sui dettagli, e questo non è un fatto facile da fare, quindi speriamo che questo aiuta un po'.

Altri suggerimenti

Non c'è un modo ufficiale API di fare questo, per quanto ne so, ma probabilmente può essere eluso attraverso un uso intelligente di campo nullo (Field.FOCUSABLE), che è il numero personalizzato di BlackBerry interfacce utente a attuare costretto comportamento attenzione .

Un approccio potrebbe essere quello di ricavare ogni "elemento della lista" da una classe che intreccia NullFields focusable con i contenuti visibili della voce di lista stessa - questo sarebbe essenzialmente forzare il sistema di scorrimento a "saltare" a intervalli più piccoli, piuttosto che la grande intervalli dettata dalle divisioni naturali tra gli elementi dell'elenco, e avrebbe il vantaggio collaterale di non modificare il posizionamento visibile del contenuto dell'elemento di elenco.

a meno che non si desidera ignorare i come le vernici ListField o creare il proprio involucro, si avrà sempre questo problema, questo è perché ogni linea è sempre visibile durante lo scorrimento. Provate ad usare labelField invece.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top