我正在使用ListField
爲我的應用程序在列表中顯示數據。現在我的要求是,我想增加列表中所選項目的行高。如何增加列表字段的選定項目的行高度
爲此,我創建了一個GridFieldManager
並使用此經理填寫了我的列表。然後我重寫這位經理的onFocus()
方法。但是,這個方法從來沒有被調用過。因此我無法增加所選行項目的高度。
請幫忙。
我正在使用ListField
爲我的應用程序在列表中顯示數據。現在我的要求是,我想增加列表中所選項目的行高。如何增加列表字段的選定項目的行高度
爲此,我創建了一個GridFieldManager
並使用此經理填寫了我的列表。然後我重寫這位經理的onFocus()
方法。但是,這個方法從來沒有被調用過。因此我無法增加所選行項目的高度。
請幫忙。
我明白了。我僞造了ListField
的實現。我刪除了ListField
,並用VerticalFieldManager
替換了它。我在onfocus()
和onUnfocus()
期間調整了它的尺寸,並使用sublayout()
來更改此管理器的高度。它的工作方式正是我想要的。
ListField
行的設計都是統一大小的,所以不幸的是你不能直接改變一行的大小。您可以通過設置它來模擬它,以便上面和下面的行分別在底部和頂部繪製一點焦點顏色。或者,您可以讓一個字段保持集中在任何行的上方。然後使用選定行中的信息重新繪製此「浮動字段」。
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;
}
}
}
我很遺憾忘記提及這一點。我也想增加'ListField'中使用的標籤的字體高度。 – Shafi