1

我创建了一个示例应用程序,该应用程序使用按钮触发全屏并启用了自动旋转触发器也全屏,但是在使用自动旋转之后,如果我使用按钮触发另一个方向更改,那么在我现在单击按钮后,我的活动无法再次自动旋转改变方向,现在只有按钮可以改变模式,自动旋转不能再使用了。如何解决这个问题?

正常吗?

按钮调整大小

public void clickResize(View view) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

按钮全屏

public void clickFullscreen(View view) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

addflags、clearflags 和 configurationChanged() 的方法

private void onFullscreen() {
        window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    }

private void offFullscreen() {
    window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        onFullscreen();
}           
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            offFullscreen();
    }       
}
4

2 回答 2

2

我遇到了同样的问题并解决如下:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)通过代码旋转后设置:

从 :

public void clickResize(View view) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}

至 :

public void clickResize(View view) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)}
于 2015-10-22T08:32:12.257 回答
0

用于setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);无法自动旋转您的活动

于 2014-02-06T04:18:35.773 回答