Ежевика поля - PullRequest
       2

Ежевика поля

0 голосов
/ 21 марта 2012

Я пытаюсь заполнить поле электронной почты следующим фрагментом:

    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));

image

Есть ли правильный способ заполнения, чтобы между границей и фоном поля не было поля?

1 Ответ

4 голосов
/ 22 марта 2012

Попробуйте использовать setMargin(5,5,5,5) вместо setPadding(5,5,5,5).

Поле # setMargin ()
Поле - это область вне поля после границы.Менеджер должен правильно распределить поля, поскольку они перекрываются.

Поле # setPadding ()
Заполнение - это область в поле между содержимым и границей.

Поле # 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);
    }
...