2011-08-24 4 views
1

내 앱에 ListField을 사용하여 목록에 데이터를 표시하고 있습니다. 이제 내 요구 사항은 목록의 선택된 항목의 행 높이를 늘리고 싶다는 것입니다.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; 
} 
      } 
} 
관련 문제