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

Expendable List 소스분석중입니다.

0 추천
convertView.setLayoutParams(new AbsListView.LayoutParams(
					LayoutParams.MATCH_PARENT, ctx.getResources()
							.getDimensionPixelSize(
									R.dimen.dimen_help_row_group_height)));

이거 뭔가요..

 

이미 xml에

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/dimen_help_row_group_height"
    android:background="@color/color_040045052"
    android:orientation="horizontal" >

이렇게 높이가 저장되어있는데 왜..저기서..

저렇게 하나요..

 

 

LayoutParams.MATCH_PARENT

얘는 뭐고

ctx.getResources()

.getDimensionPixelSize(R.dimen.dimen_help_row_group_height)));

얘는 뭐죠..

왜 여기서 레이아웃을 마치페어런츠로 잡는지..왜 픽셀크기를 구해서 저걸 다시 넣는지..

 

이해좀 시켜주시면 감사합니다 ㅠㅠ 굽신굽신

윤둥이 (4,560 포인트) 님이 2013년 4월 22일 질문

1개의 답변

+1 추천
 
채택된 답변
Layout 관련해서는 xml에서 작성하는 방법이 있고 코드 상에서 작성하는 방법이 있습니다.

setLayoutParams는 Layout 의 width 와 Height 를 셋팅 하는 코드입니다. 코드상에서 width는 부모 Layout의 크기를 사용하겠다는 의미고 height 는 리소스 상에서 지정한 값을 사용하겠다는 의미입니다.

픽셀 크기를 구하는게 아니라 resource 에 값을 미리 지정해놓고 사용하는 것입니다.
사살자 (1,500 포인트) 님이 2013년 4월 22일 답변
윤둥이님이 2013년 4월 22일 채택됨
친절한 가르침 감사합니다.

제말은 그러니까..xml에 미리 hight가 dimends에 저장해놓은 값으로 지정이 되어있는데 왜 코드에서 다시 똑같은 R.dimen.dimen_help_row_group_height
이거로 설정하는지 궁금합니다..

제가 코드의 저부분을 지워봤을 때 높이가 더 줄어들고 보기 안좋아지던데 그 이유를 모르겠습니다.

(그니까 제 생각은 xml에 미리 지정해 놓은 높이와 코드에서 셋팅해준 높이가 같은데 왜 다시 하냐..)
코드상에서 getDimensionPixelSize 로 픽셀 단위로 치수를 변환하였습니다.
그렇기 때문에 xml에서 지정한 값과 코드상에서 적용된 값이 달라졌을 것입니다.
...