Как увеличить высоту строки выбранного элемента списка - PullRequest
1 голос
/ 24 августа 2011

Я использую ListField для своего приложения, чтобы отобразить данные в списке. Теперь я хочу увеличить высоту строки выбранного элемента списка.

Для этого я создал GridFieldManager и заполнил свой список с помощью этого менеджера. Затем я переопределяю метод onFocus() этого менеджера. Но этот метод никогда не вызывается. В результате я не могу увеличить высоту выбранного элемента строки.

Пожалуйста, помогите.

Ответы [ 3 ]

2 голосов
/ 24 августа 2011
Все строки

ListField имеют одинаковый размер, поэтому, к сожалению, вы не сможете напрямую изменить размер одной строки. Возможно, вы можете эмулировать его, установив его так, чтобы строки сверху и снизу рисовали немного цвета фокуса внизу и вверху соответственно. В качестве альтернативы, вы можете иметь одно поле, которое будет оставаться в центре над тем, какой ряд будет сфокусирован. Затем перерисуйте это «плавающее поле» с информацией из выбранной строки.

0 голосов
/ 03 января 2012
you can increase the row height/font text/...
as ultimately, all of the api's call canvas's paint methods

how to do:
//try playing with the font_type,font height
Font myFont = Font.getDefault().derive(Font.PLAIN, 14, Ui.UNITS_px);

 private class ListCallback implements ListFieldCallback {

public void drawListRow(ListField list, Graphics g, int index, int y, int w) {
                g.setFont(myFont);
                String text = (String)listElements.elementAt(index);
                g.drawText(text, 0, y, 0, w);
//you can increase the height of a particular row in the height parameter.
// if you want it to be specific, put an 'if conditon'
EX: if(index=1)
{
w+=10;
}
            }
}
0 голосов
/ 29 августа 2011

Я получил это работает. Я подделал реализацию ListField. Я удалил ListField и заменил его на VerticalFieldManager. Я изменил его размер во время onfocus() и onUnfocus() и использовал sublayout(), чтобы изменить высоту этого менеджера. Работает именно так, как я хочу.

...