黑莓领域填充

时间:2012-03-21 13:41:55

标签: user-interface blackberry field

我正在尝试使用以下代码段填充电子邮件字段:

    emailField = new BasicEditField(BasicEditField.FILTER_EMAIL|Field.FIELD_HCENTER|TextField.NO_NEWLINE|Field.HIGHLIGHT_FOCUS|Field.FOCUSABLE);
    emailField.setLabel("Email: ");
    emailField.setPadding(5, 5, 5, 5);
    emailField.setBorder(BorderFactory.createRoundedBorder(new XYEdges(10, 10, 10, 10), 0x0083B0D7, Border.STYLE_SOLID));

是否有正确的方法来填充边框和场背景之间没有边距?

1 个答案:

答案 0 :(得分:4)

尝试使用setMargin(5,5,5,5)代替setPadding(5,5,5,5)

  

Field#setMargin()
  保证金是边界之后的场外区域。由于这些重叠,由经理自行分配保证金。

     

Field#setPadding()
  填充是内容和边界之间的字段内的区域。

     

Field#SetBorder()
  边界是填充之外和边缘之前的字段内的区域。

enter image description here

<强>更新
你是对的,只用setPadding()代替setMargin(),没有产生预期的结果。原因是您正在使用的Border,更准确地说是它的厚度( 10 )和样式( STYLE_SOLID )。将边框粗细减小为 3 ,并将其样式更改为 STYLE_FILLED

经过上述变更 enter image description here

现在是代码片段:

public class PlayingWithBorders extends MainScreen {
    public PlayingWithBorders() {
        super(NO_VERTICAL_SCROLL | NO_HORIZONTAL_SCROLL | USE_ALL_HEIGHT | USE_ALL_WIDTH);

        VerticalFieldManager vfm = new VerticalFieldManager(USE_ALL_HEIGHT | USE_ALL_WIDTH);
        vfm.setBackground(BackgroundFactory.createSolidBackground(Color.CYAN));

        BasicEditField emailField = new BasicEditField();
        emailField.setLabel("Email: ");
        emailField.setPadding(5, 5, 5, 5);
        emailField.setMargin(5, 5, 5, 5);
        emailField.setBorder(BorderFactory.createRoundedBorder(new XYEdges(3, 3, 3, 3), 0x0083B0D7, Border.STYLE_FILLED));
        emailField.setBackground(BackgroundFactory.createSolidBackground(Color.WHITE));

        BasicEditField passwordField = new BasicEditField();
        passwordField.setLabel("Password: ");
        passwordField.setPadding(5, 5, 5, 5);
        passwordField.setMargin(5, 5, 5, 5);
        passwordField.setBorder(BorderFactory.createRoundedBorder(new XYEdges(3, 3, 3, 3), 0x0083B0D7, Border.STYLE_FILLED));
        passwordField.setBackground(BackgroundFactory.createSolidBackground(Color.WHITE));

        vfm.add(emailField);
        vfm.add(passwordField);
        add(vfm);
    }