안드로이드에서 setLayoutParams 메서드를 사용했더니 java.lang.ClassCastException이 발생한다면, LayoutParams를 잘못 사용했을 확률이 높다.
어떤 View에 LayoutParams를 적용할 때에는 View의 부모 레이아웃 클래스의 LayoutParams를 적용해야 한다.
예를들어 RelativeLayout a내부에 있는 LinearLayout b에 LayoutParams를 적용한다면,
1
2
3
4
5
6
|
b.setLayoutParams( New RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT ) ); |
이런식으로 말이다.
마찬가지로, ListView 내부의 자식 View에서는 AbsListView.LayoutParams를 사용한다.