응홍홍홍...
SlidingDrawer를 구현해 놓은 화면에서 가로모드 진입 시 이 drawer가 화면을 덮어버리는 문제를 방지하고자 onConfigurationChanged 함수에서 setLayoutParams을 다시 해주는 간단한 코드를 구현했다.
간단해.. 간단한거 아님...? 이라고 생각했는데 테스트하려 화면을 돌려보니 에러 발생. 으엥.
java.lang.ClassCastException android.view.viewgroup.$layoutParam .......블라블라...
라는 에러 메시지를 로그 상에 토해 놓았다. 하하하하하... 아 뭐... 쫌 간단히 좀 가자 좀... 이놈아 나 오늘 기운 없다고!!!
라고 해봐야 이클립스가 알아 줄리 만무...그래.. 수정해야지 뭐. 이슈가 발생한 코드를 뚫어져라 쳐다본다.
이슈 발생 코드 :
SlidingDrawer.LayoutParams changed_layout = new SlidingDrawer.LayoutParams(~~);
~~
m_sd_itemDrawer.setLayoutParams(changed_layout);
흠... 잘못한 거 없어보이는데?...
로그를 자세히 보니 viewgroup의 layoutParam을 RelativeLayout의 layoutParam으로 변환할 수가 없다고 한다. 응? 난 SlidingDrawer layoutParam을 수정한건데? 라고 반문해 보지만, 우겨서 바뀔 건 없다.
이 SlidingDrawer를 포함하고 있는 root layout이 relative layout이다. 그럼 root layout의 layoutParam으로 만들어줘야 하는건가? 라고 생각하며 컴파일러가 원하는대로 수정해 준다.
수정 코드 :
RelativeLayout.LayoutParams changed_layout = (RelativeLayout.LayoutParams)m_sd_itemDrawer.getLayoutParams();
changed_layout.height = res.getDimensionPixelSize(R.dimen.item_indrawer_portrait_height);
m_sd_itemDrawer.setLayoutParams(changed_layout);
음, 정상동작한다. 그렇긔나.. 수정되었네.
자, 다음 기능구현으로 ㄱㄱ~
'관계, Networking 그리고 Programming' 카테고리의 다른 글
프로가드로 빌드한 앱 에러시 에러 위치 확인 (0) | 2014.01.17 |
---|---|
Missing SDK Platform Android, API 19 (2) | 2013.12.20 |
File을 만들었는데, file not found라니? (0) | 2013.08.05 |
하나의 TextView(EditText)에 서로 다른 크기의 글씨 넣기. (0) | 2013.06.21 |
충격과 경악의 삽질!!! (7) | 2013.06.14 |