2016-06-10 59 views
1

我的科尔多瓦应用程序由多个html文件组成,每个代表不同的视图,但键盘弄乱了web视图。在iOS上,我用离子插件键盘的科尔多瓦软输入模式android

cordova.plugins.Keyboard.disableScroll(true); 

修复的东西,但只支持iOS。我可以添加

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

我想我可以根据我什么视图,但它看起来像曾经setSoftInputMode设置不能再更改这两个

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

之间切换?解决这个问题的最好方法是什么?另外,如何防止键盘抬起页脚? (此行为仅在Android中出现)。

对不起,如果我的问题很混乱,但我一直在试图解决这些问题,现在键盘真的让我很沮丧。

回答

3

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

runOnUiThread可运行在执行功能基于这一个我进口import android.view.WindowManager;比我添加了这个

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

所有说明都在

+0

这很好,但我怎么把它添加到config.xml? – Drutten

+0

好吧,这似乎是种工作:但现在在我的.ts文件它说不能找到windowSoftManager – Drutten