Quando io sto cercando di allineare i campi in verticale, non si comportano quello che mi aspettavo? (Blackberry JDE4.5.0 eclissi)

StackOverflow https://stackoverflow.com/questions/1365923

Domanda

Sto usando Eclipse & JDE 4.5.0 plug-in. Come allineare i campi in verticale. Possiamo allineare i campi come LEFT_BOTTOM, RIGHT_BOTTOM, LEFT_VCENTER, RIGHT_VCENTER, CENTER (verticale e orizzontale), BOTTOM_CENTER, ecc ...?

È stato utile?

Soluzione

I gestori BlackBerry campo dell'interfaccia utente sono notoriamente fastidiosi quando si tratta di allineamento campo. I gestori sembrano ignorare tutte le bandiere di stile (come HCENTER, VCENTER, ecc) e quindi l'unico modo sarete in grado di farlo è quello di eseguire l'override del metodo sublayout del vostro manager e fai da te.

Ecco un piccolo frammento di mostrare ciò che voglio dire. Questo particolare codice in realtà fa orizzontale di centraggio, centratura non verticale, ma una volta che si ottiene l'idea è possibile implementare tutti gli stili necessari.

VerticalFieldManager    mainmanager     = new VerticalFieldManager(Field.USE_ALL_WIDTH | Field.USE_ALL_HEIGHT)
{
    protected void sublayout( int width, int height ) {

        super.sublayout( width, height );

        width = getWidth();
        height = getHeight();

        for (int i = 0;i < this.getFieldCount() - 1; i++)
        {
            Field field = this.getField(i);
            //this positions the item in the middle of the manager
            int x = (int)((width - field.getWidth()) * 0.50);
            setPositionChild(field, x, field.getTop());
        }
    }

Si prega di notare che le bandiere USE_ALL_WIDTH e stile USE_ALL_HEIGHT sono importanti. Se si vuole fare le cose come centratura verticale, allineamento in basso a destra, ecc è necessario scrivere il codice di posizionamento da soli. Per l'allineamento in basso a destra per esempio si potrebbe impostare la posizione x alla larghezza del gestore meno la larghezza del campo, e la posizione y all'altezza del gestore meno l'altezza del campo.

Se si vuole essere in grado di utilizzare la classe dirigente uno personalizzato per gestire più stili diversi (come in basso a destra, in basso a sinistra) si può aggiungere un po 'di logica in sublayout per controllare stile bandiera del campo e quindi posizionare il campo in modo appropriato.

Speriamo che tutto questo ha un senso e ti aiuta. :)

Altri suggerimenti

HorizontalFieldManager accetta solo stili verticale di allineamento e VerticalFieldManager accettano solo Allineamento orizzontale. Questo è tutto. Fastidioso ++

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