Сделать кнопку на тот же размер ежевики

Я хочу иметь две кнопки одинакового размера, одну слева и другую справа. Это мой код, но я получаю кнопку шириной больше, чем другие

hManager = new HorizontalFieldManager(Field.USE_ALL_WIDTH|FIELD_VCENTER);
hManager.setPadding(15, 0, 15, 15);

B1= new ButtonField("B1", Field.FIELD_LEFT | ButtonField.CONSUME_CLICK ) {

    public int getPreferredWidth() {
      return 200;
    }
};

B2= new ButtonField("B2", Field.FIELD_RIGHT | ButtonField.CONSUME_CLICK ) {

    public int getPreferredWidth() {
        return 200;
    }
};

hmanager.add(B1);
hmanager.add(B2);

3 ответа

Решение

Сделать что-то вроде

public int getPreferredWidth() {
    return (Display.getwidth()/2)-20 ;               
}

в вашем ButtonField,

Не ставьте абсолютные значения, просто порцию, потому что экран ежевики сильно отличается

Решение @Bbdev - ответ в коде

На самом деле проблема в том, например, что ширина экрана равна 240. Но согласно вашему коду вы дали 200 в качестве ширины для первой кнопки. Так что 240-200. Теперь осталось 40 - это оставшаяся ширина экрана. Так что он не будет учитывать ширину 200, указанную для 2-й кнопки. Таким образом, из-за недостаточной ширины, по умолчанию она принимает оставшуюся ширину (а не заданную вами ширину). Таким образом, вы должны установить ширину кнопки в зависимости от ширины экрана. А также в вашем коде Field.Field_Right не работает. Только в вертикальном менеджере вы можете установить горизонтальное свойство.

Другие вопросы по тегам