Android 以编程方式设置多个方向

Met*_*soy 2 android orientation programmatically

我尝试以编程方式设置多个方向。例如我想屏幕方向可以是纵向、反向纵向和反向横向。

我尝试使用此代码,但似乎不起作用。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
Run Code Online (Sandbox Code Playgroud)

编辑

setRequestedOrientation 方法适用于最新的方向。我只是试图找到一种方法来设置两个方向。

Dre*_*rez 5

您应该根据配置更改设置请求的方向

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else if...
}
Run Code Online (Sandbox Code Playgroud)

如果您想同时支持纵向和反向纵向,请使用SCREEN_ORIENTATION_SENSOR_PORTRAIT(more info )。另一个有用的链接

编辑:

我没有看到当新配置为横向时您需要同时请求横向和纵向的情况,但您可以尝试使用 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT | ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);