How to limit screen orientation to portrait in Android SDK 27

I tried

android:screenOrientation="portrait"

and

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

but this is a failure of the application. Is there an alternative method to work in Android 8.0.0 +?

Logcat:

FATAL EXCEPTION: main
  Process: in.ajtech.finX, PID: 15077
  java.lang.RuntimeException: Unable to start activity ComponentInfo{in.ajtech.finX/in.ajtech.finX.CalendarActivity}: java.lang.IllegalStateException: Only fullscreen activities can request orientation
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
      at android.app.ActivityThread.-wrap11(Unknown Source:0)
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
      at android.os.Handler.dispatchMessage(Handler.java:105)
      at android.os.Looper.loop(Looper.java:164)
      at android.app.ActivityThread.main(ActivityThread.java:6541)
      at java.lang.reflect.Method.invoke(Native Method)
      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
   Caused by: java.lang.IllegalStateException: Only fullscreen activities can request orientation
      at android.os.Parcel.readException(Parcel.java:1950)
      at android.os.Parcel.readException(Parcel.java:1888)
      at android.app.IActivityManager$Stub$Proxy.setRequestedOrientation(IActivityManager.java:5675)
      at android.app.Activity.setRequestedOrientation(Activity.java:5739)
      at in.ajtech.finX.CalendarActivity.onCreate(CalendarActivity.java:55)
      at android.app.Activity.performCreate(Activity.java:6975)
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892at android.app.ActivityThread.-wrap11(Unknown Source:0at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593at android.os.Handler.dispatchMessage(Handler.java:105at android.os.Looper.loop(Looper.java:164at android.app.ActivityThread.main(ActivityThread.java:6541at java.lang.reflect.Method.invoke(Native Method) 
+4
source share
5 answers

ERRORS

Read Only fullscreen activities can request orientation

Only full-screen actions can request orientation in android.app.ActivityThread.performLaunchActivity

You should use instead . AppCompatActivity Activity

let your activity expand . AppCompatActivity

Java

public class YourActivity extends AppCompatActivity {
  // ...
}

Kotlin

class  YourActivity : AppCompatActivity()

FYI

Android 3.0 ( API 11), , ActionBar . ActionBar Android. ActionBar - , Android - . , , , .

Setting Up the App Bar.

DEMO

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

</style>
+2

sroid (27), portrait Translucent, sdk 26 Translucent portrait.

+1

AndroidManifest.xml :

  • , , :

    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.NoTitleBar"
    

    , .

  • , .., :

    android:screenOrientation="unspecified"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    

    , screenOrientation . .

SDK.

+1

extents Activity AppCompatActivity . .

0

You can set the property from the manifest file, inside each action, add this line android:screenOrientation="portrait"

-1
source

Source: https://habr.com/ru/post/1694505/