애플리케이션을 디자인할때, 사용자에게 몰입감을 줄 수 있도록 특정 화면에서 화면을 가로/세로모드로 변경하는 방법이 있다.
그러나 안드로이드 오레오(Oreo) 버전, 그중에서도 안드로이드 8.0 버전에서 화면 회전 시 에러가 발생할 수 있다.
그에 따른 해결방법으로는 아래와 같은 방법이 있다.
1. Oreo 버전에서 대응코드 삽입
if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
오레오 버전일때 위와같이 if문으로 감싸 예외처리를 해준다.
그러나 오레오 버전일때 화면회전을 하지 않게 할 뿐이므로 화면회전이 되지않아 근본적인 해결책으로 보기 어렵다.
2. Android Theme(Style).xml에 다음 코드 삽입
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowIsFloating">false</item>
안드로이드 Theme(Style)에 위와같은 코드를 삽입한다.
오레오 버전에서도 화면회전을 가능하게 한다.
다크모드로 별개의 theme(style)을 생성했을 경우
해당 xml에도 위의 코드를 삽입하는것을 잊지 말자.