Что я пытаюсь сделать, это просто изменить высоту EditField.
Это звучит довольно легко, но я столкнулся с проблемой, которая сводит меня с ума.
Вот мой код:
public class CMainManager extends HorizontalFieldManager
{
EditField mtxt=new EditField(EditField.FOCUSABLE | EditField.FILTER_DEFAULT);
/* Constructeur */
public CMainManager()
{
add(mtxt);
}
public int getPreferredHeight()
{
return Display.getHeight();
}
public int getPreferredWidth()
{
return Display.getWidth();
}
protected void sublayout(int width, int height)
{
layoutChild(mtxt, 50, 500);
setPositionChild(mtxt, 0, 10);
mtxt.setBackground(
BackgroundFactory.createSolidBackground(0x000000FF));
setExtent(width, height);
}
}
Строка layoutChild (mtxt, 50, 500); должен установить ширину и высоту моего EditField. Это так, но только с шириной. Высота постоянна. Если я установлю его на 500, я получу тот же результат, как если бы я установил его на 10.
Есть идеи о том, что мне не хватает? потому что я уверен, что это глупая ошибка, которую я делаю ...
Спасибо
== редактировать
После помощи jproffit я понял, что сделал не так. Однако теперь, когда это работает (я могу установить высоту), у меня есть другая проблема. Вот мне код:
private EditField m_Txt=new EditField(EditField.FOCUSABLE |
EditField.FILTER_DEFAULT) {
protected void layout(int width, int height)
{
setExtent(Display.getWidth(), m_TxtHeight);
}
public boolean isFocusable()
{
return true;
}
protected void onFocus(int direction)
{
super.onFocus(direction);
invalidate();
}
protected void onUnfocus() {
super.onUnfocus();
invalidate();
}
};
С этим кодом я не могу правильно управлять фокусировкой. Что я забыл? Я не вижу курсора в своем поле.
Есть идеи?
Спасибо