Android:手动屏幕方向而不重新启动活动?

tim*_*tim 8 android restart manual orientation android-activity

我需要制作一个应用程序播放带有全屏视频按钮的视频.该按钮用于在视频显示的横向和纵向之间手动切换.我们不希望自动旋转检测.因此Manifest文件设置如下.

<activity
    android:name=".VideoActivity"
    android:screenOrientation="portrait"
    android:configChanges="keyboardHidden"/>
Run Code Online (Sandbox Code Playgroud)

我用了

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 要么 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);

手动设置方向.它工作但它重新启动活动 - 发现onCreate()被调用.因此视频播放意外地从头开始重新开始.我不能像使用一样平滑onConfigurationChanged()- 自动旋转检测方法.

那么如何在不重新启动活动的情况下更改手动屏幕方向?

谢谢.

tim*_*tim 6

对于manaul方向更改:

<activity
    android:name=".VideoDetails"
    android:configChanges="orientation"/>

public class VideoDetails extends Activity {
    ...
    onStart() {
        setRequestedOrientation(orientation);
    }
    onConfigurationChanged(Configuration newConfig){
        // do stuff for orientation change.
    }
    onClick() {
        setRequestedOrientation(orientation);
    }
}
Run Code Online (Sandbox Code Playgroud)

对于自动定向检测:

<activity
    android:name=".VideoDetails"
    android:configChanges="orientation"/>

public class VideoDetails extends Activity {
    ...
    onConfigurationChanged(Configuration newConfig){
        // do stuff for orientation change.
    }
}
Run Code Online (Sandbox Code Playgroud)