티스토리 뷰

728x90
반응형

안드로이드는 액티비티에서 어떠한 변화가 발생하면 액티비티가 다시 실행됩니다.


그러니깐 방향을 가로에서 세로 방향으로 전환했다던가


키보드의 활성화 여부에 따라


액티비티의 레이아웃을 다시 그리게 됩니다.



어플리케이션의 개발자 혹은 기획자의 의도는


단지 방향만 전환했을뿐이고, 단지 키보드의 상태 변화만 생겼을때는


아무런 변화없이 레이아웃만 가로에서 세로로 혹은 세로에서 가로로 유동적으로 변경되었으면 하는 경우가 많습니다.



이때 configChanges 속성을 이용할 수 있습니다.



<activity
            android:name="ListActivity"
            android:configChanges="orientation|keyboard"
            >
</activity>



configChanges 속성값에 정의된 설정 변경에 대해서는 안드로이드는 액티비티를 다시 실행하지 않습니다.


위의 예제에서는 orientation(방향변화), keybard(키보드상태변화)의 configChanges가 발생해도


액티비티를 다시 실행하지 않게 됩니다.


좀 더 많은 속성은 개발자 문서에서 찾아볼 수 있습니다.


스크린사이즈 변화라던가, 폰트스케일이 변경했다던가 다른 여러 변화상태들이 있습니다.




안드로이드 개발자 문서에서는 이 속성에 대해서 다음과 같은 주의를 주고 있습니다.



이 속성을 사용하는것은 피하는 것이 좋으며, 최후의 수단으로 사용해라. 런타임상태에서의 변화 핸들링 하기 문서에 설정 변경에 따른 적절한 처리에 대한 자세한 내용이 담겨있다.



해당 문서에서 구글이 권장하는 방법은 onConfigurationChanged 메소드를 오버로드해서


런타임상태에서 환경변화를 감지하여 이에 맞춰 대응하는 방법을 권장하고 있네요.




728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함