当我试图垂直对齐字段时,它们的表现不符合我的预期吗?(Blackberry JDE4.5.0 eclipse)

Jes*_*ssu 2 user-interface blackberry rim-4.5

我正在使用Eclipse和JDE 4.5.0插件.如何垂直对齐字段.我们可以对齐像场LEFT_BOTTOM,RIGHT_BOTTOM,LEFT_VCENTER,RIGHT_VCENTER,CENTER(垂直和水平方向),BOTTOM_CENTER等...?

Vic*_*tor 7

在处理字段对齐时,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());
        }
    }
Run Code Online (Sandbox Code Playgroud)

请注意,USE_ALL_WIDTHUSE_ALL_HEIGHT风格的标志是重要的.如果你想做垂直居中,右下对齐等事情,你需要自己编写定位代码.例如,对于右下对齐,您可以将x位置设置为管理器的宽度减去字段的宽度,将y位置设置为管理器的高度减去字段的高度.

如果您希望能够使用一个自定义管理器类来处理多个不同的样式(如右下角,左下角),则可以在子布局中添加一些逻辑以检查字段的样式标志,然后适当地定位字段.

希望这一切都有意义并帮助你.:)