마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 초보가 Custom listview 관련 질문입니다.

0 추천

카카오톡 친구리스트와 같은 상단 2개정도의 row만 다른 layout을 사용하고

아래 row들은 동일한 layout으로 Custom listview를 구성하려고 합니다.

각각 다른 row에 대한 xml은 다 구현했고요

이 리스트에 사용될 Adapter을  구현하는데

getView()를 오버라이드하여 구현한 부분은 아래 코드와 같이 써주었는데요

@Override
public View getView(int position, View convertView, ViewGroup parent) {      
	if(convertView == null) {
		if(position==0) {
		       convertView = mInflater.inflate(R.layout.list_horizontal, null);
	        }//hlist
		else if(position==1) {
			convertView = mInflater.inflate(R.layout.list_ad, null);
		}//ad
		else {
			convertView = mInflater.inflate(R.layout.list_common, null);
		}//items
	}
	return convertView;
}

 

이제 리스트에 아이템을 넣어줘야 하는데 item을 넣을때 어떤식으로 넣어야 하는지 감이 오질 않네요;;

0번 위치에는 수평 리스트뷰 하나만 들어갈 예정이고(임시로 버튼 들어간 xml로 되어있습니다.)

1번 위치에는 가로로 긴 버튼 하나

2번부터 들어가는 item들은 우선은 썸네일 이미지와 textview들로 구성되어 있고 textview에 text 넣어주려고 합니다.

 

한가지 유형은 구현할 수 있겠는데 이렇게 복합적인 유형은 처음이라 어떤 방식으로 구현해야 할 지 감이 안 잡히네요 ㅠㅠ

seolki (220 포인트) 님이 2014년 7월 22일 질문
아 그리고 리스트뷰는 Fragment위에 구현되어 있습니다.
3개의 Fragment를 탭처럼 가지고 있는 형태로 구현중이라서요..

1개의 답변

0 추천
 
채택된 답변
mListView.addHeaderView(v);를 쓰시는게 어떠신가요..

물론 저렇게 구현할수도있겠지만...단순하게 0,1번째만 호출한다치면.. 굳이 저렇게 복잡하게 구현할필요가없을듯한데요..

ㅇㅅㅇ
whdrb19 (23,520 포인트) 님이 2014년 7월 22일 답변
seolki님이 2014년 7월 23일 채택됨
그리고호....저렇게 구현하시면 VIew의 재사용은 안됩니다...

getItemViewType를 오버라이드하셔서 ViewType이 몇개인지 구현을해주셔야합니돠....
답변 감사합니다~

그런데 HeaderView같은 경우에는 2회 이상 호출하면 레이아웃이 깨질 수도 있다고 들었던 것 같은데 상관없나요??
상관없습니다.~~~~~~~~~~~~~~
...