cordova软输入模式android

时间:2016-06-10 00:02:20

标签: cordova ionic-framework hybrid-mobile-app

我的cordova应用程序包含多个html文件,每个文件代表不同的视图,但键盘搞乱了webview。在iOS上我使用了离子插件键盘

cordova.plugins.Keyboard.disableScroll(true);

解决问题,但只支持iOS。我可以添加

机器人:windowSoftInputMode = “adjustPan” AndroidManifest.xml似乎解决了它,但我希望这只适用于一个视图。换句话说,我希望键盘能够向上推动除一个特定视图之外的视图。

我以为我可以在这两个之间切换

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) 
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

取决于我所处的视图,但看起来一旦设置了setSoftInputMode,以后就无法更改它?解决这个问题的最佳方法是什么?另外,我如何防止键盘向上推? (此行为仅出现在Android中)。

很抱歉,如果我的问题令人困惑,但我现在已经尝试解决这些问题几天了,键盘让我很沮丧。

1 个答案:

答案 0 :(得分:3)

我想我找到了解决这个问题的最佳方法。我做了一个cordova插件。 当我写这个问题时(在这个答案前30分钟),我不知道如何创建一个cordova插件,所以我遵循了这个很棒的教程:http://www.mat-d.com/site/tutorial-creating-a-cordova-phonegap-plugin-for-android-app/

基于此,我导入import android.view.WindowManager;而不是runOnUiThread runnable中的execute函数,我添加了这个

if(action.equals("adjustPan"))
    cordova.getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
else if(action.equals("adjustResize"))  
    cordova.getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

根据我从javascript调用函数的方式,它会改变输入模式:)

我将此插件添加到github并在此处添加链接

编辑:以下是插件https://github.com/denkomanceski/windowSoftInputMode

中的链接

所有说明都在那里