layout 폴더에 수식어를 추가하면 회전에 따른 화면을 따로 적용할 수 있다.
layout-port : 세로 화면
layout-land : 가로 화면
안드로이드에서 화면 회전이 발생하면 화면을 새롭게 만들게 된다.
이때 일부 UI 요소들은 초기 값으로 설정되기 때문에 복원하는 작업을 해야 한다.
onSaveInstanceState 메서드에서 복원 시 필요한 값을 저장한다.
onCreate 메서드에서 복원 작업을 해준다.
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
// 새로운 화면에서 복원해야할 뷰의 값을 저장한다.
outState.putString("str1", activityManiBinding.textViewResult.text.toString())
}
복원
if(savedInstanceState != null){
val str1 = savedInstanceState.getString("str1")
textViewResult.text = str1
}
만약 화면이 회전되는 것을 막고 고정시키고자 한다면 AndroidManifest.xml의 Activity 태그에 screenOrientation 속성으로 설정하면 된다.