2011-08-24 48 views
1

我正在使用ListField爲我的應用程序在列表中顯示數據。現在我的要求是,我想增加列表中所選項目的行高。如何增加列表字段的選定項目的行高度

爲此,我創建了一個GridFieldManager並使用此經理填寫了我的列表。然後我重寫這位經理的onFocus()方法。但是,這個方法從來沒有被調用過。因此我無法增加所選行項目的高度。

請幫忙。

回答

0

我明白了。我僞造了ListField的實現。我刪除了ListField,並用VerticalFieldManager替換了它。我在onfocus()onUnfocus()期間調整了它的尺寸,並使用sublayout()來更改此管理器的高度。它的工作方式正是我想要的。

2

ListField行的設計都是統一大小的,所以不幸的是你不能直接改變一行的大小。您可以通過設置它來模擬它,以便上面和下面的行分別在底部和頂部繪製一點焦點顏色。或者,您可以讓一個字段保持集中在任何行的上方。然後使用選定行中的信息重新繪製此「浮動字段」。

+0

我很遺憾忘記提及這一點。我也想增加'ListField'中使用的標籤的字體高度。 – Shafi

0
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; 
} 
      } 
} 
相關問題