フィールドを垂直方向に整列させようとすると、期待どおりに動作しません (Blackberry JDE4.5.0 eclipse)

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

質問

Eclipse と JDE 4.5.0 プラグインを使用しています。フィールドを垂直方向に整列させる方法。次のようなフィールドを揃えることはできますか? LEFT_BOTTOM,RIGHT_BOTTOM, LEFT_VCENTER, RIGHT_VCENTER, CENTER(縦横)、 BOTTOM_CENTER, 、など…?

役に立ちましたか?

解決

フィールドの配置を扱うときに

BlackBerryのUIフィールドマネージャーは悪名高い迷惑です。管理者は、(などHCENTERVCENTER、のような)すべてのスタイルフラグを無視するように見えるので、あなたがこれを行うことができるでしょう唯一の方法は、あなたのマネージャーのsublayoutメソッドをオーバーライドして、それを自分で行うことです。

ここで私が何を意味するかをお見せするために少し抜粋です。この特定のコードは、実際には、の横のセンタリングではなく、垂直方向のセンタリングを行いますが、あなたはあなたが必要とするすべてのスタイルを実装することができますアイデアを得る一度ます。

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

USE_ALL_WIDTHUSE_ALL_HEIGHTスタイルフラグが重要であることに注意してください。あなたは垂直センタリング、右下の位置合わせなどのようなものをしたい場合は、位置決め用のコードを自分で記述する必要があります。例えば、右下の位置合わせのために使用すると、マネージャマイナスフィールドの幅の幅x位置、およびマネージャの高さマイナスフィールドの高さy位置を設定することができます。

あなたが複数の異なるスタイルを処理するために、1つのカスタムマネージャークラスを使用することができるようにしたい場合は、

は、(右下、左下のように)あなたは、フィールドのスタイルフラグをチェックし、適切なフィールドを配置するsublayoutにいくつかのロジックを追加することができます。

うまくいけば、このすべてが理にかなっているし、あなたを助けます。 :)

他のヒント

horizo​​ntalFieldManager は垂直方向の配置スタイルのみを受け入れ、VerticalFieldManager は水平方向の配置のみを受け入れます。それでおしまい。うざい++

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top