Uknow's Lab.
article thumbnail

애플리케이션을 디자인할때, 사용자에게 몰입감을 줄 수 있도록 특정 화면에서 화면을 가로/세로모드로 변경하는 방법이 있다.

그러나 안드로이드 오레오(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에도 위의 코드를 삽입하는것을 잊지 말자.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.