在 Android 中以编程方式检测“显示虚拟键盘”设置

问题描述 投票:0回答:1

Android中有一个名为“显示虚拟键盘”的设置,在我的手机中位于:

Settings > Languages & input > Physical keyboard
。它控制在物理键盘处于活动状态时是否将虚拟键盘保留在屏幕上。

有没有办法以编程方式查询它是启用还是禁用?我在Android开发者的Settings.System列表中找不到它。

android
1个回答
0
投票
我不知道你是否可以查询该信息,但如果它对你有帮助,有一种方法可以以编程方式检测键盘是否打开。

private boolean isKeyboardShowing = false; private void detectKeyboard() { rootView.getViewTreeObserver().addOnGlobalLayoutListener( new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect r = new Rect(); rootView.getWindowVisibleDisplayFrame(r); int screenHeight = rootView.getRootView().getHeight(); int keypadHeight = screenHeight - r.bottom; if (keypadHeight > screenHeight * 0.15) { // keyboard is opened if (!isKeyboardShowing) { isKeyboardShowing = true; } } else { // keyboard is closed if (isKeyboardShowing) { isKeyboardShowing = false; } } } }); }
    
© www.soinside.com 2019 - 2024. All rights reserved.