Я хочу установить высоту и ширину EditField
в моем приложении BlackBerry.Установите высоту и ширину EditField на BlackBerry
ответ
Вам необходимо переопределить метод компоновки данного поля, чтобы установить размер для вас:
protected void layout(int width, int height)
{
super.layout(customWidth, customHeight);
setExtent(customWidth, customHeight);
}
где customWidth
и customHeight
были установлены вами в другом месте.
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);
}
};
Вместо: поле myEditField = новый EditField() Должно быть: EditField myEditField = новый EditField() – Sarang
@Sarang Это зависит от того, что вы хотите сделать, помните, что 'EditField' является подклассом' Field'. –
Вы также можете Пейс поле редактирования внутри horizontalFieldmanager и переопределить метод sublayout к установить высоту и ширину горизонтального поля для установки высоты & ширина поля редактирования
переопределение 'sublayout()' своего рода поражения от использования 'HorizontalFieldManager' (по сравнению с просто расширением' Manager'). Я также видел много странных проблем, когда люди это делали. В общем, если людям действительно нужен прекрасный контроль над макетами, они должны либо решить, что это работа Менеджера, либо подкласс «Менеджер», либо решить, что это неотъемлемое свойство дочернего поля «Поле», и делать то, что предлагает Ричард. – Nate
- Примечание 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();
}
};
Другим способом изменить высоту в 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);
как я могу получить больше ответов ??? – User
Этот вопрос был дан ответ здесь: http://stackoverflow.com/questions/1338671/blackberry-custom-size-editfield – gnuf