不久前,我将我的应用程序转换为包括横向模式,从每个具有 screenOrientation="portrait"
的 Activity 到这个:
<activity
android:name="bundle.android.views.MainActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="fullSensor">
我还在每个 Activity 的 onConfigurationChanged
中处理配置更改。
但事后看来,我只希望带有弹出式硬件键盘的边缘案例获得横向模式。如何调整 list 和代码?
我是否保留某种组合 android:configChanges ? onConfigurationChanged
类?洞察力赞赏
最佳答案
一种选择是以编程方式解决此问题。您可以做的是检测用户是否连接了硬件键盘,如果连接了硬件键盘,则强制将方向设置为横向模式。以下是检测硬件键盘的两种方法:
http://developer.android.com/reference/android/content/res/Configuration.html#keyboard
和
if (getResources().getConfiguration().hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO) {
}
一旦您检测到用户有硬键盘,您可以强制用户使用横向模式:
myActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
关于android将应用程序设置为仅纵向,键盘拔出时除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18020150/