4

我添加android:configChanges="orientation"并覆盖onConfigurationChanged(). 我想做的是仅当设备具有平板电脑大小的显示分辨率设置时才允许横向更改(短边大于 480 像素 - 欢迎提出更好的处理方法的建议!)。我在想这会以两种方式之一起作用,但在我的测试中无论是在手机上还是在模拟器中都不起作用。

我的第一个想法是不调用超类的实现onConfigurationChanged(),但是我抛出了一个异常,抱怨我没有调用超类。

我的第二个想法是在将 newConfig.orientationConfiguration.ORIENTATION_PORTRAIT传递给超类之前手动设置它。在我的 Activity 和框架中的实际 Activity 类之间,我有一个 ActivityBase 类,我也使用它来覆盖它。我可以在 ActivityBase 中敬酒 newConfig.orientation 的值,以查看确实被传递的配置对象确实具有新值,但它被忽略并且方向更改已经发生。

我可以在哪里放置允许我在某些情况下有条件地短路方向更改并在其他情况下允许它的代码?

4

1 回答 1

2

我会在 Activity onCreate() 方法中设置请求的方向来修复,如下所示:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

如果显示器不是 xhdmi 显示器或具有所需的分辨率。

于 2011-03-02T15:45:33.460 回答