在BlackBerry上设置EditField的高度和宽度

时间:2010-12-14 04:45:11

标签: blackberry blackberry-editfield

我想在BlackBerry应用中设置EditField的高度和宽度。

4 个答案:

答案 0 :(得分:8)

您需要覆盖字段的布局方法来为您设置大小:

protected void layout(int width, int height)
{
    super.layout(customWidth, customHeight);
    setExtent(customWidth, customHeight);
}

您在其他位置设置了customWidthcustomHeight

  • super.layout(customWidth, customHeight)将该字段用于使用您的特殊宽度&高度。

  • setExtent(customWidth, customHeight)设置屏幕上字段的大小。


当您使用类似于以下代码的代码声明EditField时,可以执行此操作:

final int customWidth = Display.getWidth();
final int customHeight = 30;

Field myEditField = new EditField()
{
    protected void layout(int width, int height)
    {
        super.layout(customWidth, customHeight);
        setExtent(customWidth, customHeight);
    }

};

答案 1 :(得分:3)

您还可以在horizo​​ntalFieldmanager中调整编辑字段,并覆盖sublayout方法以设置horizo​​ntalfieldmanager的高度和宽度,以设置高度和宽度。编辑区的宽度

答案 2 :(得分:1)

  • 注1:您无法设置editField
  • 的宽度和高度
  • 注意2:您只使用管理器中的sublayout方法
  • 注3:如果您将editField添加到屏幕,它将填充从屏幕开始到结束的所有可用宽度

您可以通过在左侧放置一些字段并将editField放在最后一个字段来使用此想法。

或者,您可以使用以下代码。

您将设置管理器和编辑字段的宽度和高度,并尝试将它们放在屏幕上:

HorizontalFieldManager containerManager = new HorizontalFieldManager() {
    public int getPreferredHeight() {
        return super.getPreferredHeight();
    }

    public int getPreferredWidth() {
        return super.getPreferredWidth();
    } 

    protected void sublayout(int maxWidth, int maxHeight) {
        setExtent(getPreferredWidth(), getPreferredHeight());
        super.sublayout(getPreferredWidth(), getPreferredHeight());
    }
};


EditField editField = new EditField(Field.FIELD_VCENTER) {
    public int getPreferredHeight() {
        // TODO Auto-generated method stub
        return super.getPreferredHeight();
    }

    public int getPreferredWidth() {
        // TODO Auto-generated method stub
        return super.getPreferredWidth();
    } 
};

答案 3 :(得分:0)

另一种修改EditField高度的方法是在边框周围填充边框,如下所示:

EditField emailField = new EditField("", "optional initial text");

XYEdges xyEdge = new XYEdges(2, 2, 2, 2);
XYEdges xyEdgeColors = new XYEdges(0x00dddddd, 0x00dddddd, 0x00dddddd, 0x00dddddd);
Border aBorder = BorderFactory.createSimpleBorder(xyEdge, xyEdgeColors, Border.STYLE_SOLID);

emailField.setBorder(aBorder);
emailField.setPadding(10, 5, 5, 10);