본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] LayoutInflater 의 LayoutParam 무시에 대한 불편한 진실.

by 돼지왕 왕돼지 2012. 12. 28.
반응형



LayoutInflater 를 사용할 때 다음과 같이 자주 사용하는데, 이럴 경우 inflate 되는 view의 root의 LayoutParam 이 무시된다.

LayoutInflater.from( getContext() ).inflate( R.layout.list_item, null );

 
문제는 parent 에 붙이는 것이 무시되기 때문이다. 따라서, inflate 를 할 때 붙여주는 parent 를 명시해주어야 한다.

LayoutInflater.from( getContext() ).inflate( R.layout.list_item, parent );

 
여기서 문제가 되는 경우는, ListView 를 사용할 때인데, 저렇게 parent 를 명시해주면, 해당 parent 에 inflate 하는 view 가 자동으로 addView 가 되기 떄문에 문제가 된다. 왜 문제가 되느냐? ListView 는 addView 함수에 대해 UnsupportedOperationException 을 뿜도록 설계되어 있기 때문이다.



이럴 경우, addView 를 사용하여 붙이지 않도록, 마지막 파라미터를 하나 더 추가해야 한다.

LayoutInflater.from( getContext() ).inflate( R.layout.list_item, parent, false );

 
자, 고민 해결. 

 
도움이 되셨다면 손가락 꾸욱~ ( 로그인 필요 x )




반응형

댓글