2016-03-21 38 views
0

当我的科尔多瓦应用程序中显示安卓键盘时,我有一些内容/输入字段。我有 android:windowSoftInputMode="adjustPan"<preference name="fullscreen" value="false" />科尔多瓦安卓键盘上传内容

我试图android:windowSoftInputMode="adjustResize但它一直因为它是调整窗口的大小缩小我的内容(我的内容是基于视窗的宽度和高度视大小)。谢谢你的任何建议!

回答

0

所以我有一个可能或不可能适用于每个人的工作,但我想我可以发布这个希望帮助遇到此问题的人!

我找到了很多答案,但没有真正帮助我。所以在我的AndroidManinfest.xml文件中我设置了android:windowSoftInputMode="adjustPan|stateHidden"。是的,这仍然会覆盖键盘下方的内容。

为了避免这种情况,我给了我所有的滚动视图,这些视图会受到键盘显示类的inputScrollContainer的影响。把它们命名为任何你想要的。

由于每个容器(对我来说)是相同的高度是每个页面的最上面一栏,我做了以下内容:(你将必须安装设备插件,并从科尔多瓦

    键盘插件
  • 得到window.innerHeight在我的js的开始(如果你这样做你native.keyboardshow函数内,iOS版会给你基于键盘的高度调整大小后的视图)

然后,在我的native.keyboardShow功能,我做了以下内容: - 然后得到了最上面一栏的高度(我选一个,因为他们都是相同的) - 增加了增加了keyboard heighttop bar height一起 - 然后我减去那些从窗口高度

现在这样做给了我滚动视图的高度“剩余”。我后:

  • 年得到的类名的所有元素inputScrollContainer
  • 通过他们形成环并赋予新的高度,以每个(你可以把它分配给当前在视图中仅滚动视图,但我只有三个影响意见,所以我并不担心它)

现在滚动视图的大小调整为顶部栏和键盘之间留下的任何东西。然后在我的native.keyboardhide函数中,我只是将高度恢复到原来的所有滚动视图的高度。

我确定还有其他的方法可以做到这一点,但是这样做可以让我在iOS和Android之间保持灵活性和一致性。我希望这可以帮助别人!

0

要在键盘可见/显示时向上移动布局,请添加以下活动。

<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity> 

adjustResize:活动的主窗口总是被调整以腾出空间给软键盘在屏幕上。

adjustPan:活动的主窗口没有调整大小以为软键盘腾出空间。相反,窗口的内容会自动平移,以便当前焦点永远不会被键盘遮挡,用户始终可以看到他们正在键入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能与窗口的遮蔽部分进行交互。 在你的场景中,你可以利用调整pan 然而,它的工作原理基于android版本。它可能不适用于特定版本。请找到并使用。

Please have look at this answer you will come to know a lot.

+0

您在Cordova应用程序内添加的Android平台应该位于以下文件中:AndroidManifest.xml位于platforms/android – TedEd

0

视窗高度是这里的问题。 有一些方法可以通过mediaqueries或javascript(使用正确的高度修改所有dom元素)来解决问题。 但在我的情况下,我有很多dom元素,真的不想用javascript来改变这一切。 我的诀窍是: - 更改所有VH与REM和4 除以你的价值 - 在所有的页面都使用这个小的javascript:

$("html").css({"font-size": ($(window).height()/25)+"px"});

在这里,我们走了,在这个例子中,字体-size是窗口高度的4%(原因字体大小对移动应用的最小值),所以:寡妇高度的 1rem = 4%= 4vh 0.25rem = 1vh等...

在我的情况,我用SASS函数来分割所有的vh,所以它更容易改变所有的css。 (1h = rem(1)= 0.25rem)

希望这有助于某一天。