LinearLayout이나 RelativeLayout 등에 setLayoutParams 하기 위해 LayoutParams 객체를 만들 때, 각 객체의 부모클래스에 맞는 놈을 생성해서 넣어야지만 ClassCastException이 발생하지 않는 것까지는 제가 잘 알겠습니다.
그런데 이걸 API화 시키기가 쉽지 않네요.
public class LayoutUtil {
public static void setFillParent(ViewGroup viewGroup, View view)
{
view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
}
}
위와 같은 클래스가 있고
@Override
protected void onResume() {
RelativeLayout testLayout = (RelativeLayout) findViewById(R.id.testLayout); Button testButton = (Button) findViewById(R.id.testButton);
LayoutUtil.setFillParent(testLayout, testButton); }
위와 같이 사용하려 하면, 어김없이 ClassCastException이 등장합니다.
viewGroup.getClass() 를 해서 class별로 switch-case 실행해 주는 것도 이상해보이고..
해결 방법이 없나요?