我创建了一个示例应用程序,它使用按钮触发全屏,启用自动旋转的触发也全屏,但在使用自动旋转后,如果我使用按钮触发另一个方向变化,那么在我点击按钮后,我的 Activity 现在不能自动执行从改变方向再次旋转,现在只有按钮可以改变模式,自动旋转不能再使用了。如何解决这个问题?
这正常吗?
按钮调整大小
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();
}
}
最佳答案
我遇到了同样的问题,解决方法如下:
通过代码旋转后设置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)}
关于android - 触发点击按钮后,如何在 android 中再次启用自动旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21593167/