フィールドを垂直方向に整列させようとすると、期待どおりに動作しません (Blackberry JDE4.5.0 eclipse)
-
21-09-2019 - |
質問
Eclipse と JDE 4.5.0 プラグインを使用しています。フィールドを垂直方向に整列させる方法。次のようなフィールドを揃えることはできますか? LEFT_BOTTOM
,RIGHT_BOTTOM
, LEFT_VCENTER
, RIGHT_VCENTER
, CENTER
(縦横)、 BOTTOM_CENTER
, 、など…?
解決
BlackBerryのUIフィールドマネージャーは悪名高い迷惑です。管理者は、(などHCENTER
、VCENTER
、のような)すべてのスタイルフラグを無視するように見えるので、あなたがこれを行うことができるでしょう唯一の方法は、あなたのマネージャーの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_WIDTH
とUSE_ALL_HEIGHT
スタイルフラグが重要であることに注意してください。あなたは垂直センタリング、右下の位置合わせなどのようなものをしたい場合は、位置決め用のコードを自分で記述する必要があります。例えば、右下の位置合わせのために使用すると、マネージャマイナスフィールドの幅の幅x位置、およびマネージャの高さマイナスフィールドの高さy位置を設定することができます。
は、(右下、左下のように)あなたは、フィールドのスタイルフラグをチェックし、適切なフィールドを配置するsublayoutにいくつかのロジックを追加することができます。
うまくいけば、このすべてが理にかなっているし、あなたを助けます。 :)
他のヒント
horizontalFieldManager は垂直方向の配置スタイルのみを受け入れ、VerticalFieldManager は水平方向の配置のみを受け入れます。それでおしまい。うざい++