Quando estou tentando alinhar os campos verticalmente, eles não estão se comportando o que eu esperava? (BlackBerry JDE4.5.0 Eclipse)

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

Pergunta

Estou usando o Eclipse & JDE 4.5.0 plug-in. Como alinhar os campos verticalmente. Podemos alinhar campos como LEFT_BOTTOM,RIGHT_BOTTOM, LEFT_VCENTER, RIGHT_VCENTER, CENTER(vertical e horizontalmente), BOTTOM_CENTER, etc ...?

Foi útil?

Solução

Os gerentes de campo da interface do usuário do BlackBerry são notoriamente irritantes ao lidar com o alinhamento de campo. Os gerentes parecem ignorar todas as bandeiras de estilo (como HCENTER, VCENTER, etc), então a única maneira de fazer isso é substituir o sublayout Método do seu gerente e faça você mesmo.

Aqui está um pequeno trecho para mostrar o que quero dizer. Este código em particular realmente faz horizontal Centraling, não vertical, mas depois de ter a ideia, pode implementar quaisquer estilos necessários.

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());
        }
    }

Por favor, observe que o USE_ALL_WIDTH e USE_ALL_HEIGHT Bandeiras de estilo são importantes. Se você quiser fazer coisas como centralização vertical, alinhamento inferior direito, etc., precisará escrever o código de posicionamento. Para o alinhamento inferior direito, por exemplo, você pode definir a posição X com a largura do gerente menos a largura do campo e a posição Y na altura do gerente menos a altura do campo.

Se você deseja usar uma classe de gerenciador personalizada para lidar com vários estilos diferentes (como canto inferior direito, canto inferior esquerdo), poderá adicionar alguma lógica na subblayout para verificar o sinalizador de estilo do campo e depois posicionar o campo adequadamente.

Espero que tudo isso faça sentido e ajude você. :)

Outras dicas

O HorizontalfieldManager aceita apenas estilos de alinhamento vertical e o verticalfieldManager aceita apenas o alinhamento horizontal. É isso. Irritante ++

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top