我试过了
android:screenOrientation="portrait"
和
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
但它正在崩溃应用程序,有没有其他方法可以在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: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)
答案 0 :(得分:4)
阅读Only fullscreen activities can request orientation
只有全屏活动可以请求定位 android.app.ActivityThread.performLaunchActivity
您应该使用AppCompatActivity
代替 Activity
。
让您的活动延伸 AppCompatActivity
。
<强> JAVA 强>
public class YourActivity extends AppCompatActivity {
// ...
}
<强>科特林强>
class YourActivity : AppCompatActivity()
<强> FYI
强>
从Android 3.0(API级别11)开始,使用的所有活动 默认主题将ActionBar作为应用栏。不过,app吧 功能已逐渐添加到本机ActionBar中 各种Android版本。因此,本机ActionBar的行为 不同的取决于Android系统的哪个版本的设备 可能正在使用。相比之下,最新的功能被添加到 支持库的工具栏版本,它们可用于任何版本 可以使用支持库的设备。
<强> DEMO
强>
设定你的风格
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
</style>
答案 1 :(得分:1)
它的android sdk(27)问题,您无法将portrait
与Translucent
一起使用,因此请将目标sdk降低到26
或删除{{1} }主题或删除Translucent
模式。
答案 2 :(得分:1)
在AndroidManifest.xml
中进行以下更改:
对于不透明活动,即全屏,请设置:
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar"
请注意,主题应该不是半透明的。
对于transclusent活动,即弹出对话框等,请设置:
android:screenOrientation="unspecified"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
请注意,此处未指定screenOrientation。您可以使用半透明主题。
这可以在不降级SDK版本的情况下使用。
答案 3 :(得分:0)
将nohup /root/ffmpeg_sources/ffmpeg/ffmpeg -stream_loop -1 -i "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov" -vcodec libx264 -f flv -s 320x240 -an "rtmp://localhost:1935/live/camera1" </dev/null &
重新定位到extents Activity
解决了问题。谢谢你的帮助
答案 4 :(得分:0)
当我尝试打开活动作为另一个活动中的对话框时,我遇到了相同的错误。
然后我从清单中的对话框活动减速中删除了android:screenOrientation="portrait"
,并解决了问题!
这是因为父项活动应负责定向。
答案 5 :(得分:-1)
您可以在清单文件中设置属性,在每个活动中添加此行android:screenOrientation="portrait"