안드로이드에서 화면이 가로에서 세로, 세로에서 가로로 전환될때 화면을 다시 그리기 위해 OnCreate가 발생하고는 한다. 하지만 이럴 경우 이전 상태에 대한 대응이 없으면 참으로 피곤한 경우가 발생할 경우가 많다.
그럴때는 화면이 전환될때의 이벤트를 따로 분리시켜 처리해주면 아주 쉽게 대응할 수 있다.
우선 Mainfest에서 configChanges옵션을 추가해 준다. 여기서는 orientation, screenSize 즉 가로, 세로 전환과 화면 크기가 변화가 있을대 이벤트를 발생시킨다는 의미이다.
<activity
android:name="com.test.MainActivity"
android:configChanges="orientation|screenSize" />
*configChanges Syntax는 아래와 같다. ( https://developer.android.com/guide/topics/manifest/activity-element.html )
Mainfest수정이 완료 되었다면 Acitivity에서 onConfigurationChanged를 Override해준 뒤 해당 작업을 해주면 화면을 다시그리는 문제에서 벗어 날 수 있다.
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
//해당작업
} else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//해당작업
}
}
'Android' 카테고리의 다른 글
[Android] Fragment 별로 메뉴 구성 다르게 하기 (0) | 2016.11.23 |
---|---|
[Android] Activity에서 Fragment 함수 호출, Fragment에서 Activity 함수 호출 (0) | 2016.11.22 |
[Android] 안드로이드 해상도별 Dimens (1) | 2016.11.18 |
[Android] 안드로이드 텍스트박스 다이얼로그 띄우기 (0) | 2016.11.17 |
[Android] 안드로이드 자바 코드에서 레이아웃(Layout) 변경 방법 (0) | 2016.11.16 |