가로 모드를 지원 하는 앱을 개발 중입니다.
구글링을 통하여 가로 모드/세로 모드 전환에 성공을 하였습니다.
첫번째로 res/layout-port, res/layout-land를 이용하여 xml파일을 2개를 정의하여 사용하는 법과
두번째로 소스단에서 onConfigurationChanged함수를 오버라이드해서 제어하는 방법을 테스트 해봤는데요
제가 현재 개발 중인 어플의 레이아웃은 tablelayout과 같은 형태로 서버에서 xml파싱을 하여 땡겨 오는 결과값의 갯수에
따라 UI가 동적으로 변하고 있습니다.
예를 들면 서버에서 가져온 값의 갯수가 7개라면 세로 모드와 가로 모드 일경우 다음과 같이 보여 주려 합니다.
1. 세로모드 2. 가로 모드
* * * * * * *
* * * * * *
*
위와 같이 layout을 표현하려면 UI가 동적이기 때문에 소스단에서 layout을 정의하여야 하기 때문에 첫번째 방법으로는
불가능 할 것으로 생각됩니다. 그래서 두번째 방법인 onConfigurationChanged함수를 사용하여 테스트를 해보았는데요,
화면 모드 정환시 view가 갱신이 되지 않아서.. onConfigurationChanged함수 안에 removeAllView를 이용하여 view를 모두
지우고 다시 정의를 하면 view갱신은 되는데요..removeAllView를 하면 이미 생성 되었던 이미지들을 다시 파싱 해야 하는
문제가 생깁니다...이미지들이 많아서 sdcard에 저장하는 방법은 무리인듯 합니다..
질문의 요지는 onConfigurationChanged함수 안에서 동적으로 변하는 UI를 removeAllView를 사용하지 않고 표현해 줄 수 있는 방법
이 궁금합니다..
참고할만한 사이트나 이런 경우 어떻게 처리 해야 하는지 조언 부탁드립니다..




view 함수중에 forceLayout 이라는 함수를 부르면 레이아웃이 다시 계산되는걸로 압니다.