2016-03-21 40 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)

希望這有助於某一天。