Я боролся с этим точным сценарием при реализации моего собственного EditField.Происходит то, что, поскольку вы разрешаете горизонтальную прокрутку, а EditField по своей природе хочет использовать как можно большую ширину, вы получаете очень широкий EditField.Я копирую это из своего кода, так что, надеюсь, он будет работать для вас, но если он не добавит комментарий, и я постараюсь выяснить, смогу ли я помочь заставить его работать.
EditField edit = new EditField(EditField.NO_NEWLINE | style) {
protected void fieldChangeNotify(int context) {
try{
super.fieldChangeNotify(context);
setExtent(this.getFont().getAdvance(this.getText()) + 10, this.getHeight());
}
catch(Exception e){
//don't recall why I needed this, but it works so I'm hesitant to remove it
}
}
protected void layout(int width, int height) {
super.layout(width, height);
setExtent(this.getFont().getAdvance(this.getText()) + 10, this.getHeight());
}
};
То, что это будет делать, постепенно расширяет поле EditField по мере роста текста.У меня было это внутри HFM, которое росло вместе с ним, но вам это может не понадобиться.Я сделал это потому, что если поле стало шире, чем ширина экрана, а не прокручивал весь экран, вы могли бы позволить этому одному полю прокручиваться горизонтально.Кроме того, + 10 там, потому что он обрезал курсор без него.Если вам это тоже понравится, я могу отредактировать этот пост, чтобы включить его.