我使用了下面的代码来获取键盘高度。
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect rect = new Rect(); view.getWindowVisibleDisplayFrame(rect); int screenHeight = view.getRootView().getHeight(); int keyboardHeight = screenHeight - rect.bottom; if(keyboardHeight != 0){ if(orientation == Configuration.ORIENTATION_LANDSCAPE) AppConfig.landscapeKeyboardHeight = keyboardHeight; else if(orientation == Configuration.ORIENTATION_PORTRAIT) AppConfig.portraitKeyboardHeight = keyboardHeight; } } });
但这只在应用程序至少第一次打开键盘时才会给出高度。我想要键盘的高度,甚至在它第一次打开之前。有什么方法可以做到这一点吗?提前谢谢...
我以前也遇到过同样的问题,因为显示一些对话框时需要获得键盘的高度。你可以用下面的方法来解决这个问题。
rootView = getWindow().getDecorView().getRootView();
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect rect = new Rect();
rootView.getWindowVisibleDisplayFrame(rect);
int screenHeight = rootView.getHeight();
int keyboardHeight = screenHeight - (rect.bottom - rect.top);
if(keyboardHeight > screenHeight / 3){
keyboardActive = true;
Log.d("Keyboard", "Active");
}
else{
keyboardActive = false;
Log.d("Keyboard", "Not Active");
}
}
});
问题内容: 不同的iOS设备上的键盘高度不同。有人知道我如何以编程方式获取设备键盘的高度吗? 问题答案: 在Swift中: 您可以通过订阅通知来获取键盘高度。(假设您想知道显示的高度是多少)。 像这样: 迅捷2 迅捷3 斯威夫特4 然后,您可以使用以下功能访问高度: 迅捷2 迅捷3 斯威夫特4
问题内容: 我想在一个按钮中创建一个事件。 当我单击按钮时,我想打开Windows虚拟键盘。 您能帮我提供代码吗? 谢谢您的合作。 最好的祝福。 问题答案: 我认为这就是这么简单:
我有一个活动使用“adjustPan”作为其调整大小配置,我需要在不使用“adjustResize”的情况下计算键盘高度,因为我需要将某些视图保留为全屏(这意味着它们应该保留在原位,键盘应该隐藏它们),并将视图放在键盘正上方。我们的应用程序有一个消息按钮,我通过按钮点击打开键盘。当它发生时,我使用OnGlobalLayoutListener并使用“getWindowVisibleDisplayFr
我有cordova应用程序,它从web加载html页面。现在这些网页都有输入字段,所以当点击这些输入字段时,会出现android默认键盘。我不想使用这个键盘,因为已经有自定义键盘作为侧应用程序中的弹出窗口。我尝试的是:在androidM中的我的活动内添加以下配置anifest.xml 但是没有什么能阻止这个默认键盘的出现。有人能建议我如何禁用我的应用程序的键盘吗。
要获取请求URL,可以在堆栈溢出中找到以下方法。 第一种方法: 第二种方法: 第三种方法: 我不知道在spring boot应用程序中使用哪一个来获取请求URL。 如果我使用第三种方法,那么我是否需要在配置类中创建RequestContextListener的bean,如下所示?
我在下面定义的