2014-02-24 4 views
1

ListView에 현재 화면에 몇 개의 목록 항목이 있는지 질문하는 우아한 방법이 있습니까?ListView의 목록 항목 크기 조정

또는 다른 방법으로 : ListView에 항목 수가 (높이를 높이면) 정확히 n 개의 항목이 화면에 맞도록 만들 수 있습니까? 필자의 경우 목록 항목은 간단한 TextViews입니다.

답변

2

가장 쉬운 방법은 너의 ListView 높이를 얻고 listView.getHeight()/N이되는 자신의 뷰를 만드는 것입니다 (여기서 n은 화면에서 원하는 화면 수임).

+0

오 데 도움이 list.getFirstVisiblePosition()

int count = list.getLastVisiblePosition() - list.getFirstVisiblePosition(); 

희망을 뺍니다. 정말 쉽습니다. 재정의 된 getView 메소드에서'textView.setHeight (parent.getHeight()/n); '를 시도했습니다. 그러나 이것은 제대로 작동하지 않습니다. 아마도 구획 문자를 고려해야할까요? TextViews는 약간 높습니다. –

+0

@ principal-ideal-domain ListView가 제대로 측정 될 때까지 기다리거나 먼저 스스로 측정해야합니다. 전자는 GlobalLayoutListener로, 나중에는 MeasureSpec을 생성하고 measure를 호출하여 getHeight()를 호출 할 수 있습니다. – dcow

+0

@ principal-ideal-domain 나는 또한 당신의 문제를 오해하고있을 수도 있다는 것을 알고있다. getHeight()가 기대 한 것보다 큰 값을 반환하고 있다고 말하는가? (getHeight()/n 또한 원하는 것보다 큼)? 그렇다면 왜 최대 높이 또는 뭔가를 textView에 설정하려고하지 않거나 자신이 원하는 크기로 정확하게 설정할 수있는 자신 만의보기를 사용해야 할 수도 있습니다. – dcow

2

당신은 list.getLastVisiblePosition()를 사용할 수 있으며이 당신이 옳은 것,