android将应用程序设置为仅纵向,键盘拔出时除外

标签 android android-activity rotation onconfigurationchanged android-configchanges

不久前,我将我的应用程序转换为包括横向模式,从每个具有 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/

相关文章:

opencv - 查找两个摄像机之间的相对旋转

android - 将微调器宽度设置为当前项目宽度

android - Maven Android 仪器测试输出

java - 如何使用fft检测环境

android - 如何删除android中不需要的重叠

android - 重命名 Activity ,现在它不会启动

css - 使用CSS同时旋转3个div

android - 销毁 Activity 时自动调用服务

java - 为 android 集成 Authorize.net API 的问题

java - Android应用程序在旋转屏幕时崩溃