странная высота - PullRequest
       18

странная высота

7 голосов
/ 19 декабря 2011

В моем приложении у меня есть 2 типа полей редактирования.Один из них ведет себя как однострочное поле редактирования, другой - как многострочное поле редактирования (editarea).На этом экране у меня есть один заголовок, одно поле редактирования и одна область редактирования.Когда я ввожу какой-либо текст в editfield, он обрезает текст и курсор.Но, когда я ввожу какой-то текст в editarea, который включает в себя хвостатый символ (y, g, q, p), высота editarea s меняется и editfield действует нормально.Если я не ввожу символы с хвостами, структура не изменится.

Вот мой класс editarea:

public class EditAreaField extends HorizontalFieldManager{
    private net.rim.device.api.ui.component.EditField editArea;
    public EditAreaField (){
         // some code;
         editArea.setPadding(25, 10, 0, 10);    
    }
    public int getPreferredHeight() {
        int height = Math.max(editArea.getHeight(), textFont.getHeight());
        return height  + editArea.getPaddingTop();
    }
}

label1 -> editfield

label2 -> editarea

enter image description here enter image description here

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

О рисовании курсора - вы переопределили drawFocus или / и onFocus или / и onUnfocus и когда-то не перерисовывались должным образом.

1 голос
/ 20 декабря 2011

это потому, что вы изменяете размер с помощью

    int height = Math.max(editArea.getHeight(), textFont.getHeight());

вместо этого попробуйте указать фиксированную высоту. например

    height= Graphics.getScreenHeight()/5;

или вы также можете использовать setExtent в методе подслоя менеджера

     protected void sublayout(int maxWidth, int maxHeight)
            {
                layoutChild(_editField, _editField.getPreferredWidth(), _editField.getPreferredHeight());
                setPositionChild(_editField, xpos,ypos);
                setExtent(preferredHeight,preferredWidth);
            }

Я думаю, что это сработает. Пожалуйста, дайте мне знать

...