#blackberry #horizontalfieldmanager
#ежевика #horizontalfieldmanager
Вопрос:
Я написал простую программу, которая добавляет два поля редактирования в диспетчер полей:
HorizontalFieldManager hrfm = new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL);
EditField editField1 = new EditField();
editField1.setText("User Name:");
EditField editField2 = new EditField();
editField2.setText("Hello");
hrfm.add(editField1);
hrfm.add(editField2);
add(hrfm);
Но когда я запускаю эмулятор, он отображает только поле имени пользователя. Я не могу найти другое поле редактирования. Почему возникает эта проблема. Я также столкнулся с аналогичной проблемой при добавлении флажка, LabelField. Пожалуйста, помогите мне использовать этот FieldManager. Спасибо
Ответ №1:
Проверьте, как реализовать дополнительные кнопки, поля и менеджеры.
Существует JustifiedHorizontalFieldManager
- это должно решить ваши потребности.
Комментарии:
1. 1, @user609282 здесь происходит то, что первое поле редактирования использует все доступное пространство, поэтому у вас нет места для 2-го поля. Вы можете переопределить ширину на что-то статическое в подстроке EditField, но более аккуратным решением является использование расширенного пакета пользовательского интерфейса, как предлагает этот ответ.
Ответ №2:
Hope this will helps you.
EditField editField1 = new EditField();
editField1.setText("User Name:");
EditField editField2 = new EditField();
editField2.setText("Hello");
int Width = editField1.getPrefferedWidth() editField2.getPrefferedWidth();
int Height = editField1.getPrefferedHeight() editField2.getPrefferedHeight();
HorizontalFieldManager hrfm = new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL)
{
protected void sublayout(int maxWidth, int maxHeight) {
super.sublayout(Width, Height);
super.setExtent(Width, Height)
}
}
hrfm.add(editField1);
hrfm.add(editField2);
add(hrfm);