2010-12-13 2 views
0

ListView의 첫 번째 항목에 Top Margin을 추가하고 싶습니다. 그게 가능하니? 또는 목록보기에서 첫 번째 목록 항목을 어떻게 참조 할 수 있습니까? 순간 나는 그것을 실행하기 때문에 ListView에서 첫 번째 목록 항목을 참조하는 방법은 무엇입니까?

내가, 아마, 그것은 작동하지 않습니다

lv = (ListView)getListView(); 
View myRowItem = lv.getChildAt(0); 

을 시도, 목록 항목은 아직 존재하지 않았다. 내가 onPostRender 이벤트 같은 코드에서 위의 시도해야합니다 가정합니다. 자바 안드로이드에 그런 것이 있습니까?

답변

0

자신 만의 어댑터를 만들어 getView 메서드에 넣어야합니다. 그러나, 나는 왜 당신이 첫 번째 항목에 위쪽 여백을 추가하고 싶은지를 알고 싶습니다 ... ListView 그 상단 여백을 넣으면 똑같은 행동을하지 않겠습니까?

+0

순수한 디자인 문제입니다. 목록을 전체 화면 (또는 작업 영역)으로 가져오고 싶지만 목록이 처음 나타날 때 작업 영역의 위쪽 가장자리와 목록의 첫 번째 항목 사이에 약간의 여백을두고 싶습니다. 먼저 어댑터 행과 전화 호출을 시작할 때까지 잘게 작동하는 몇 가지 간격을 만들기 위해 머리글 행을 추가하려고했습니다. (문제의 또 다른 세트를 만들었고 그 방법이 잘못되었다고 결론을 냈습니다) – bobetko

+0

유일한 해결책 인 것 같습니다. GetWiew를 사용하고 위치가 0 인 경우 ConvertView에 여백 값을 적용하는 것입니다.이 ConvertView가 다시 재사용되기 때문에 0 이외의 위치에 대해서는 여백 값을 제거해야합니다. 나는 좀 더 효율적인 해결책을 원했다. – bobetko

+0

그렇다면, 나는 position 0에서 convertView의 위쪽 여백을 어떻게 바꿀 지 모르겠다. 나는 LayoutParams로 나에게 의미가있는 모든 것을 시도했다 ... 매번 충돌한다. – bobetko

0

항목을 가져 오려면 어댑터 목록을 설정할 때마다 코드를 작성하십시오.

그런데 여백을 설정하려면 레이아웃 파일 (XML 파일)에 ListView의 android:PaddingTop을 설정하기 만하면됩니다.

0

ListItem을 사용자 지정하는 가장 좋은 장소는 해당 어댑터입니다. ListView에 대한 사용자 정의 어댑터를 작성하고 getView 메소드를 사용하여 모든 ListItem에 대해 수행 할 작업을 결정하십시오. 아래의 예를 참조하십시오. How to repaint listview items when changing orientation

관련 문제