我添加了
android:configChanges =“orientation”,我重写onConfigurationChanged().我想做的是只有当设备具有平板电脑大小的显示分辨率设置(短边大于480px时才允许改变横向方向 – 建议更好的处理方式,这是值得欢迎的!).我当时认为这可以通过两种方式之一工作,但我的测试中既没有在手机上也没有在模拟器中工作.
我的第一个想法是不调用onConfigurationChanged()的超类’实现,但是我得到一个异常抛出,抱怨我没有调用超类.
我的第二个想法是在将newConfig.orientation传递给超类之前手动将其设置为Configuration.ORIENTATION_PORTRAIT.在我的Activity和框架中的实际Activity类之间,我有一个ActivityBase类,我在其中使用的地方也覆盖了它.我可以在ActivityBase中保存newConfig.orientation的值,以查看确实传递的配置对象是否具有新值,但忽略它并且已经发生了方向更改.
在哪里可以放置允许我在某些情况下有条件地使方向改变短路并允许在其他情况下允许的代码?
最佳答案 我会设置请求的方向来修复Activity onCreate()方法,如下所示:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
如果显示器不是xhdmi显示器或具有所需的分辨率.