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

时间:2009-09-02 05:08:37

标签: user-interface blackberry rim-4.5

我正在使用Eclipse& JDE 4.5.0插件。如何垂直对齐字段。我们可以对齐LEFT_BOTTOMRIGHT_BOTTOMLEFT_VCENTERRIGHT_VCENTERCENTER(垂直和水平),BOTTOM_CENTER等字段。 。?

2 个答案:

答案 0 :(得分:7)

在处理字段对齐时,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 :(得分:1)

Horizo​​ntalFieldManager仅接受垂直对齐样式,而VerticalFieldManager仅接受水平对齐。而已。 恼人的++