对于摄像头应用程序,我希望避免在方向更改时重新绘制活动。
到目前为止,我一直在使用android:screenOrientation="landscape"
现在,我希望图标根据方向变化旋转。
好吧,这应该非常简单:
首先,上面的代码行被删除。
然后为活动设置清单:
android:configChanges="orientation|screenSize|keyboardHidden"
最后,您在活动中覆盖onConfigurationChanged:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//Do something
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//Do something
}
}
现在,AFAIK应该触发onConfigurationChanged而不是重新启动活动(假设它将在onConfigurationChanged中处理)
实际上,当更改方向时,会触发onConfigurationChanged,但会导致不必要的旋转。如何取消呢?我想念什么?
设备:小米Mi2s
API:4.1.1
谢谢,
标记。
最佳答案
您需要防止父级按如下方式处理配置:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(null);
//TODO: Do nothing when orientation has changed...
}
如您所见,您需要做的就是将null传递给onConfigurationChanged的super方法,因此它实际上将阻止您通过所有想要避免的更改。
问候!