1

不久前,我将我的应用程序转换为包含横向模式,从每个活动都screenOrientation="portrait"必须这样做:

        <activity
        android:name="bundle.android.views.MainActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:screenOrientation="fullSensor">

我还可以很好地处理onConfigurationChanged每个活动中的配置更改。

但事后看来,我只想要带有弹出式硬件键盘的边缘案例来获得横向模式。如何调整清单和代码?

我要保留某个组合 android:configChanges 吗?上课onConfigurationChanged?洞察力赞赏

4

1 回答 1

1

一种选择是以编程方式解决这个问题。您可以做的是检测用户是否连接了硬件键盘,如果是,则强制方向进入横向模式。以下是检测硬件键盘的两种方法:

http://developer.android.com/reference/android/content/res/Configuration.html#keyboard

if (getResources().getConfiguration().hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {

}

一旦你检测到用户有一个硬键盘,你可以强制用户使用横向模式:

myActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
于 2013-08-11T08:44:04.217 回答