我有一个Cordova应用程序(使用 angularjs框架),这是我的观点: 当我关注一个输入时,需要视图向上移动以在(屏幕上)键盘显示时保持输入可见: 当我将焦点从输入更改为其他位置(模糊)时
          当我关注一个输入时,需要视图向上移动以在(屏幕上)键盘显示时保持输入可见:
当我将焦点从输入更改为其他位置(模糊)时,键盘会关闭(就像它应该),但会将视图重绘为错误的位置:
当我使用Chrome进行检查时,它会显示所有位置的元素,而不是它们在显示屏上的位置:
我完全不知道是什么导致了这个错误,我已经尝试在onDraw方法中重新绘制视图,因此无限重绘视图以查看是否会修复它但无济于事.有任何想法吗?
额外细节
Cordova版本:3.5.0-0.2.4
设备:Nexus 10 – Android 4.4.4
通过隐藏html标记然后重新显示它可以正确地重绘视图.
fixAndroidKitkatDisplayBug: function () {
        $(document).on('blur', 'input', function () {
            var htmlTags = document.getElementsByTagName('html');
            var html = htmlTags[0];
            html.style.display = 'none';
            html.offsetHeight; // no need to store this anywhere, the reference is enough
            html.style.display = 'block';
        });
    } 
 然后在index.js中,在“onDeviceReady”之后我像这样调用这个方法
setTimeout(function (){
    if (typeof(device) != 'undefined' && device.platform && device.platform == "Android" && device.version && parseFloat(device.version) == 4.4) {
       fixAndroidKitkatDisplayBug();
    }
}, 100); 
 (对我来说,我需要setTimeout才能定义设备)
