2012-05-30 3 views

답변

0

당신이 목록의 맨 위에 (안 가시 화면 상단에 하나의 상대를 원하기 때문에, 당신은 사용하여 계산할 수 있습니다 :

int yPos = view.getHeight() * position; 

편집 : 다른 높이 그건 아마 때문에, 성능 아파 리사이클 많은 도움이되지 않는다. 나는이 사건에 대한 마법의 방법이 있다고 생각하지 않습니다

. 현실적으로 당신이해야 할 일은 목록의 위치와 y 오프셋 (offset)의 배열을 유지하고, 예를 들어

// Item at position 0, top starts at 0, height is 15 
pos[0][0] = 0 
pos[0][1] = 15 

// Next item starts one pixel down from previous item's top, is 10 pixels tall 
pos[1][0] = 16 
pos[1][1] = 10 
있도록

그리고 getView 내에서 채우기 만하면됩니다. 이 솔루션은 개별 항목의 위치를 ​​결정할 때 이전 항목의 위치 + 높이가 필요하기 때문에 각 항목의 절대 높이뿐만 아니라 개별 높이를 추적합니다.

+0

항목마다 높이가 다름을 지적해야합니다. 나는 그것을 추가 할 것이다. – HardCoder

+0

나는 당신이 어디로 가고 싶은지 좋아하지 않는다. 문제는 내가 목록을 표시하고 일부 항목을 볼 수 없으므로 (아직 그리지 않았다) 그 항목에 대한 높이를 어떻게 얻을 수 있는가하는 점이다. – HardCoder

+0

이것은 ListView의 확장 기능입니다. 맞습니까? 아래로 스크롤하는 것에 대해 이야기하는 경우 문제가되지 않습니다. 예를 들어, 항목 1과 3이 표시되지만 2와 4가 표시되지 않는다는 것을 의미하면 함께 진행하면서 업데이트해야합니다. 이 데이터가 필요한 이유는 무엇입니까? –

관련 문제