Сделать кнопку на тот же размер ежевики
Я хочу иметь две кнопки одинакового размера, одну слева и другую справа. Это мой код, но я получаю кнопку шириной больше, чем другие
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 не работает. Только в вертикальном менеджере вы можете установить горизонтальное свойство.