2011-07-26 5 views
6

LayoutParamsLinearLayout으로 설정할 때 어떤 클래스를 사용해야합니까? 다음 두 작동하지 않습니다 : 내가 처음 PARAMS을받을 경우LayoutCast를 추가 할 때 ClassCastException이 발생합니다

  1. linLayout.setLayoutParams(new ViewGroup.LayoutParams(50,50));
  2. linLayout.setLayoutParams(new android.widget.LinearLayout.LayoutParams(50,50));

그들을 변경하고 다시이 일하고을 설정합니다. 그래서 나는 ViewGroup.LayoutParams에서 상속받은 Params를 가정합니다 ...

어떤 생각? THX

답변

12

상위의 LayoutParams를 사용하십시오. 따라서 LinearLayout이 RelativeLayout의 자식 인 경우 linLayout.setLayoutParams(new android.widget.RelativeLayout.LayoutParams(50,50));

+0

멋지다 :) 왜 이러한 매개 변수를 사용하고 LinearLayout 매개 변수를 사용하지 않을까요? – Frempe

+1

정확한 답을 모르지만 LayoutParams는 부모가 레이아웃하려는 방식을 부모님에게 알리기 위해 뷰에서 사용됩니다. 그리고 이것은 부모 특정 (부모 레이아웃 유형에 따라 다름)입니다. 따라서 linlayout.getLayoutParams를 캐스팅 할 때이 경우 RelativeLayout.LayoutParams에 캐스팅합니다. –

+0

아, 이해 THX! – Frempe

관련 문제