룬아님의 취중코딩

Only fullscreen opaque activities can request orientation 이슈 본문

개발/안드로이드 개발

Only fullscreen opaque activities can request orientation 이슈

룬아님 2019. 8. 5. 22:18

스타일에 투명 옵션인

windowIsTranslucent을 true로 하고

<style name="Theme.App.SwipeBack" parent="Theme.App.Base">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

screenOrientation 고정 옵션을 사용했을 때 강제 종료 되는 문제이다.

<activity
   android:name=".ui.MyActivity"
   android:screenOrientation="portrait"
   android:theme="@style/Theme.App.SwipeBack"/>

해결 방법은 android:screenOrientation="portrait" 옵션을 지워주는 것이다.

 

android:screenOrientation="unspecified"

위의 옵션은 기본값으로 해당 옵션을 사용하면 시스템에게 Orientation을 맡기게 된다.

투명 옵션이 적용된 경우 투명 옵션의 특성 때문에 부모의 옵션을 따라가게 된다.

그렇기 때문에 부모에게 potrait 옵션을 주게 되면 해당 뷰도 세로 고정이 된다.

 

https://developer.android.com/guide/topics/manifest/activity-element.html?hl=ko

불러오는 중입니다...
"unspecified" 기본값입니다. 시스템이 방향을 선택합니다. 시스템이 사용하는 정책과 특정 컨텍스트에서 이루어지는 선택은 기기마다 다를 수 있습니다.
"behind" 액티비티 스택에서 바로 아래에 있는 액티비티와 동일한 방향입니다.
"landscape" 가로 방향입니다(디스플레이의 높이보다 너비가 더 긺).
"portrait" 세로 방향입니다(디스플레이의 너비보다 높이가 더 긺).
"reverseLandscape" 반전된 가로 방향입니다. API 레벨 9에서 추가되었습니다.
"reversePortrait" 반전된 세로 방향입니다. API 레벨 9에서 추가되었습니다.
"sensorLandscape" 기기 센서에 따라 정상적인 가로 방향 또는 반전된 가로 방향이 될 수 있습니다. API 레벨 9에서 추가되었습니다.
"sensorPortrait" 기기 센서에 따라 정상적인 세로 방향 또는 반전된 세로 방향이 될 수 있습니다. API 레벨 9에서 추가되었습니다.
"userLandscape" 기기 센서 및 사용자의 센서 기본 설정에 따라 정상적인 가로 방향 또는 반전된 가로 방향이 될 수 있습니다. 사용자가 센서 기반 회전을 잠금 설정한 경우 landscape와 동일하게 작동하고, 잠금 설정을 하지 않은 경우 sensorLandscape와 동일하게 작동합니다. API 레벨 18에서 추가되었습니다.
"userPortrait" 기기 센서 및 사용자의 센서 기본 설정에 따라 정상적인 세로 방향 또는 반전된 세로 방향이 될 수 있습니다. 사용자가 센서 기반 회전을 잠금 설정한 경우 portrait와 동일하게 작동하고, 잠금 설정을 하지 않은 경우 sensorPortrait와 동일하게 작동합니다. API 레벨 18에서 추가되었습니다.
"sensor" 기기 방향 센서가 방향을 결정합니다. 디스플레이 방향은 사용자가 기기를 잡고 있는 방법에 따라 다르며 사용자가 기기를 회전할 때 변경됩니다. 그러나 일부 기기는 기본적으로 4개의 모든 방향으로 회전하지 않습니다. 4개의 모든 방향을 허용하려면"fullSensor"를 사용합니다.
"fullSensor" 기기 방향 센서가 4개의 방향을 결정합니다. 이는 4개의 화면 방향을 허용한다는 것을 제외하면 기기가 정상적으로 수행하는 것과 상관없이 "sensor"와 유사합니다. (예를 들어, 일부 기기는 세로 반전 또는 가로 반전을 정상적으로 사용하지 않지만 이 특성은 정상적으로 사용합니다.) API 레벨 9에서 추가되었습니다.
"nosensor" 물리적 방향 센서를 참조하지 않고 방향을 결정합니다. 센서가 무시되므로 사용자가 기기를 이동하는 방법에 따라 디스플레이가 회전하지 않습니다. 이 구분을 제외하고 시스템은 "unspecified" 설정에 대한 것과 동일한 정책을 사용하여 방향을 선택합니다.
"user" 사용자의 현재 기본 설정 방향입니다.
"fullUser" 사용자가 센서 기반 회전을 잠금 설정한 경우user와 동일하게 작동하고, 잠금 설정을 하지 않은 경우 fullSensor와 동일하게 작동하며 4개의 화면 방향을 허용합니다. API 레벨 18에서 추가되었습니다.
"locked" 현재 회전 방향을 잠금 설정합니다. API 레벨 18에서 추가되었습니다.
반응형
Comments