各位开发者,我遇到了一个我不知道如何解决的挑战,我知道有成千上万个可能的问题或黑客与我的问题相关:
但是,几乎所有这些都连接到检查屏幕的大小,我可以解释我为什么要找到解决方案的问题的上下文。
我一直在开发一个混合应用程序,我只有一个小问题,就是这个:
不幸的是,在某些设备中最后一行是部分可见的,我知道我应该在 jQuery 中添加什么代码才能正确显示它:
$("input[type=number]").click(function(){
$("#divCustomTime").css({top: -200, position:'absolute'});
});
但是,如果键盘以不按enter的不同方式关闭,则 div 的位置无法重新定位到其先前的位置,并且我找不到任何破解或技巧的方法,我尝试了不同的方法为了检测解雇事件,例如:
- 按下后退按钮(根本不触发)。
用于检测 isAcceptingText 的线程。它根本没有用。我在 C# 中尝试过的代码之一的示例:
[Export] [JavascriptInterface] public void KeyboardStatus() { var timer = new System.Threading.Timer(callback, (InputMethodManager)context.GetSystemService(Context.InputMethodService), TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1)); } private static void callback(object state) { if ((InputMethodManager)state.IsAcceptingText) { } else { //never happens } }我从哪里得到这个想法?
https://stackoverflow.com/a/52693953/2889347
我还尝试了该方法的变体:
hideSoftInputFromWindow但它没有用。
您可能会问,为什么不使用 选项adjustResize?
它会更容易检测,但是我知道,整个应用程序配置错误和失真,以至于我应该涉及大量 CSS 和 JS,以便或多或少地对其进行配置以使其看起来不那么糟糕,这就是我选择pan而不是resize的原因。
另外,我想强调一下我正在开发Xamarin.Android,但我认为它不会影响编程语言。
有谁知道如何检测它?谢谢。
