android - 物理键盘方向

标签 android android-layout android-keypad

我想知道是否有办法确定设备具有哪种物理键盘(“纵向”,例如 Droid Pro 或“横向”,例如 HTC Mytouch Slide)?

我想在激活物理键盘时自动切换 Activity 方向,以便 Activity 中的 EditText 与键盘平行。

我尝试了来自 here 的旋转/方向解决方案,但在我的带有横向滑动键盘的测试手机上,我必须颠倒横向和纵向才能使其正常工作,这让我认为在某些设备上它必须相反。

比较屏幕宽度和高度,就像那里建议的其他一些答案一样,似乎也很可疑。或者还有其他方法吗?

最佳答案

看起来不需要知道键盘类型:为了设置 Activity 的正确方向,将其设置为来自 onConfigurationChanged 处理程序的传感器方向似乎就足够了(当物理键盘打开或关闭):

@Override
public void onConfigurationChanged(final Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}

关于android - 物理键盘方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444921/

相关文章:

java - Android - 在具有不同 R 导入的不同项目中重用类?

android - 将 Gradle 更新到 7.0.2 后,元素类型 “manifest” 必须后跟属性规范、 “>” 或 “/>” 错误

android - 如何让 TextView 增加高度

android - 在软键盘上显示 'Done' 键

android:windowSoftInputMode ="adjustResize"没有任何区别?

android - 调整移动设备的宽度

Android:edittext内的动画文本

android - 创建自定义开关

android - 如何在android xml中使用自定义字体?

android - 如何检测webView中的按键事件?