2012-02-19 2 views
1

ListView 항목 셀의 높이와 너비는 무엇인지 어떻게 알 수 있습니까? 내가 팽창 시키면 getHeight()와 getWidth()가 모두 0을 반환합니다.안드로이드에서 ListView의 셀 레이아웃 크기를 결정하는 방법은 무엇입니까?

내 셀 어댑터 xView의 getView()에서 셀 레이아웃을 확장하면 뷰의 높이와 너비는 여전히 (0,0)입니다. 나는 셀의 크기를 가정하고 그 서브 뷰는 셀을 반환하고 ListView에 자동으로 추가 될 때까지 설정되지 않습니다. 그래서, 내보기 및 그 자녀들을위한 실제 크기 정보를 언제, 어디서/어떻게 얻을 수 있습니까?

내 ListView의 각 행에는 ListView의 열을 형성하는 4 개의 TextView가 있습니다. 내 TextViews의 모든 숫자가 맞도록 가장 적합한 글꼴 크기를 동적으로 결정해야합니다. 즉, 가장 큰 문자열을 TextView에 맞추기 위해 16의 textSize를 사용해야하는 경우 textSize = 16을 사용하는 모든 행의 모든 ​​4 개의 TextView가 필요합니다.

가장 긴 문자열을 찾기 위해 모든 데이터를 사전 처리하고 있습니다. 각 TextView가 ListView 행에 얼마나 큰지 알아야합니다. 그러나 getView()에서이를 팽창시킬 때, 행과 열의 하위 행은 높이/너비가 (0,0)입니다.

올바른 글꼴 크기를 결정할 수 있도록 ListView 항목 셀의 높이와 너비는 무엇인지 어떻게 알 수 있습니까?

답변

1

즉시 팽창하지 않는 레이아웃으로 팽창하십시오. 이 과정에는 약간의 시간이 필요합니다. 내부 대기열에 저장된 작업을 팽창시키고 내부 대기열에서 푸시 아웃 할 시간이 필요합니다.

TextView.post 방법을 사용해보십시오. 그렇다면 나중에 비동기 적으로 실제 View 크기를 얻을 수 있습니다. Runnable 구현은 UI 스레드에서 실행됩니다.

관련 문제