【问题标题】:How can I vertically center a title on Blackberry?如何在黑莓上垂直居中标题?
【发布时间】:2011-11-29 08:11:14
【问题描述】:

我正在尝试制作如图所示的设计:

如您所见,在屏幕顶部栏的中心有一个标题。我可以将其设置为水平居中,但如何将其设置为垂直居中?

我已经试过了:

  • 覆盖 RichTextField 以使其自定义大小。它适用于宽度,但不适用于高度。
  • 覆盖水平/垂直字段管理器,使其具有垂直居中的自定义高度,但它不起作用:

        VerticalFieldManager vfm = new VerticalFieldManager();
        HorizontalFieldManager hfm = new HorizontalFieldManager(Field.FIELD_VCENTER){
            protected void sublayout( int maxWidth, int maxHeight )
            {
                super.sublayout( Display.getWidth(), 50);
            }
        };
        LabelWithCustomSize title = new LabelWithCustomSize("ENTERTAINMENT",Field.NON_FOCUSABLE,Display.getWidth(),50,30,2);
        hfm.add(title);
        vfm.add(hfm);
    
  • 添加一个小文本的空 RichTextField,但字段始终具有相同的高度。

如何在垂直中心设置文本或任何其他字段?

【问题讨论】:

    标签: blackberry


    【解决方案1】:

    您需要解决的问题是“经理如何垂直和水平居中添加到它的任何字段”。尝试为添加到 Manager 的 N 个字段解决这个问题可能有点复杂,但对于一个字段,它一定很容易。我建议你试试这个:

     VerticalFieldManager vfm = new VerticalFieldManager(){
            public void sublayout( int maxWidth, int maxHeight )
            {
                int margin = 0;
                int lheight = 0;
                Field f = getField( 0 );
                margin = f.getMarginBottom()+f.getMarginTop();
                layoutChild(f, maxWidth-margin, maxHeight);
                int w = f.getWidth();
                int h = f.getHeight();
                lheight = h+margin;
                int x = (maxWidth - w)/2;
                int y = (maxHeight -h)/2;
                setPositionChild( f, x, y);
                setExtent( maxWidth, lheight);
            }
        };
        vfm.add( field);
    

    【讨论】:

    • 您的代码有问题:f (Field) 没有 setPositionChild 方法。我尝试了“this”并且没有“f”,但在所有情况下都没有出现任何字段。
    • 糟糕!抱歉 setPositionChild 可与 Manager 一起使用。我正在编辑答案
    • 请求回复,但我已经尝试过了。 setPositionChild(f,x,y);等于 this.setPositionChild(f,x,y);据我所知......我把这两个都选了,以防万一,但我很伤心,没有字段出现
    • 您计算的lheight 错误。但我修好了它,它终于被吓到了!非常感谢!
    • 修复了什么?无论如何,我试图推动正确的方向而不是解决问题;时间紧缩。谢谢,它很有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2021-05-16
    • 2015-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多