Wenn ich zu align Felder vertikal versuche, sie verhalten sich nicht, was ich erwartet hatte? (Blackberry JDE4.5.0 Eclipse)

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

Frage

Ich bin mit Eclipse & JDE 4.5.0 Plug-in. Wie Felder vertikal auszurichten. Können wir align Felder wie LEFT_BOTTOM, RIGHT_BOTTOM, LEFT_VCENTER, RIGHT_VCENTER, CENTER (vertikal und horizontal), BOTTOM_CENTER, etc ...?

War es hilfreich?

Lösung

Blackberry UI-Feld-Manager sind notorisch ärgerlich, wenn sie mit Feldausrichtung zu tun. Manager scheinen alle Stil-Flags (wie HCENTER, VCENTER, etc.), so dass die einzige Möglichkeit, ignorieren Sie werden in der Lage sein, dies zu tun ist, um die sublayout Methode Ihrer Manager außer Kraft zu setzen und es selbst tun.

Hier ist ein kleiner Ausschnitt zu zeigen, was ich meine. Diese besondere Code tatsächlich tut horizontal Zentrieren, nicht vertikale Zentrierung, aber sobald man auf die Idee kommen können Sie alle Arten implementieren Sie benötigen.

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

Bitte beachten Sie, dass die USE_ALL_WIDTH und USE_ALL_HEIGHT Stil Fahnen wichtig sind. Wenn Sie Dinge wie vertikale Zentrierung tun wollen, unten rechts Ausrichten usw. müssen Sie die Positionierung Code selbst schreiben. Für untere rechte Ausrichtung beispielsweise Sie die x-Position auf die Breite des Managers setzen konnten minus der Breite des Feldes, und die y-Position auf die Höhe des Managers minus der Höhe des Feldes.

Wenn Sie in der Lage sein wollen, eine benutzerdefinierte Manager-Klasse zu verwenden, um mehrere verschiedene Stile zu behandeln (wie unten rechts, unten links) können Sie eine gewisse Logik in sublayout Fügen Sie das Feld Stil Flagge zu überprüfen und das Feld dann entsprechend positionieren.

Hoffentlich macht alles Sinn und hilft Ihnen. :)

Andere Tipps

HorizontalFieldManager akzeptiert nur Vertical Alignment Styles und VerticalFieldManager nur horizontale Ausrichtung annehmen. Das ist es. Lästige ++

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top