2016-03-21 17 views
0

私のコードバスアプリにアンドロイドキーボードが表示されているとき、いくつかのコンテンツ/入力フィールドがあります。私は(私のコンテンツがビューポートの幅とビューポートの高さに基づいて寸法決めされている)私はandroid:windowSoftInputMode="adjustResizeを試みたが、それは、ウィンドウのサイズを変更したため、それは私のコンテンツを縮小保管 android:windowSoftInputMode="adjustPan"<preference name="fullscreen" value="false" />Cordova android keyboard push up content

を持っています。ご意見ありがとうございます!

答えて

0

私は自分自身の周りに仕事をしている人もいますし、誰にもうまくいかないかもしれませんが、これを投稿して誰かを助けることができると思いました!

私は多くの答えを見つけましたが、本当に助けにはなりませんでした。だから私のAndroidManinfest.xmlファイルで私はandroid:windowSoftInputMode="adjustPan|stateHidden"を設定しました。はい、これはキーボードの下にあるコンテンツを開いている間もカバーされます。

これを避けるために、私はキーボードがクラスのinputScrollContainerと表示されることによって影響を受けるスクロールビューをすべて与えました。あなたの好きな名前を付けてください。

(私にとっては)すべてのコンテナは、各ページの最上部のバーがあったように同じ高さだったので、私は次のようでした:(あなたがコルドバ

    から デバイスプラグインとキーボードのプラグインをインストールする必要があります 私のjsファイルの先頭に
  • ガットwindow.innerHeight(あなたがnative.keyboardshow機能のこの内部をすれば、iOSのは、あなたのキーボードの高さに基づいてリサイズビューを提供します)

その後、私の内部機能、私は次のようでした: - そして、トップバーの高さ(それらはすべて同じであったとして私は1つを選んだ) が得た - を追加しましたkeyboard heighttop bar height一緒 追加 - それから私は、ウィンドウの高さから、それらを差し引い

これを行うと、スクロールビューの高さが「残っている」ことがわかりました。その私の後:

  • は、現在のビューでのみスクロールビューに割り当てることができます(inputScrollContainer
  • はそれらを介してループされ、それぞれに新しい高さを割り当てられたクラス名ですべての要素を手に入れたが、私は3つだけが影響を受けていましたそれで心配していなかったので、私は心配しませんでした)

これで、スクロールビューはトップバーとキーボードの間に残されたものにリサイズされました。その後、私のnative.keyboardhide関数では、すべてのスクロールビューの元の高さが以前の高さに復元しました。

これを行う方法はほかにもありますが、このようにするとiOSとAndroidで柔軟性と一貫性が得られました。これが誰かを助けることを願っています

0

キーボードが表示/表示されているときにレイアウトを上に移動するには、以下のアクティビティを追加します。

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

adjustResize:アクティビティのメインウィンドウが常に画面上のソフトキーボードのための部屋を作るためにリサイズされます。

adjustPan:アクティビティのメインウィンドウのサイズが変更されず、ソフトキーボード用のスペースが確保されません。むしろ、ウィンドウの内容は自動的にパンされ、現在のフォーカスがキーボードによって隠されることはなく、ユーザーはいつも入力しているものを見ることができます。これは、ウィンドウの不明瞭な部分に到達して対話するためにソフトキーボードを閉じる必要があるため、一般的にはサイズ変更よりも望ましくありません。 あなたのシナリオでは調整パン を使用することができますが、それはアンドロイドのバージョンに基づいて動作します。特定のバージョンでは動作しないことがあります。見つけて使用してください。

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

+0

Cordovaアプリ内でのAndroidプラットフォームの追加は、次のファイルになります。AndroidManifest.xml(プラットフォーム/ Androidにあります) – TedEd

0

ここでは、ビューポートの高さが問題になります。 mediaqueries、またはjavascript(正しい高さですべてのdom要素を変更する)で問題を解決するには、いくつかの方法があります。 しかし、私の場合、私は多くのdom要素を持っていて、実際にはjavascriptでこれをすべて変更したくありませんでした。 私のトリックがある: - レムであなたのVHのすべてを変更し、4 して値を分割する - あなたのページのすべてにこの小さなJavaScriptを使用します。

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

ここでは、この例では、フォントを行きます私の場合は 1rem =未亡人の高さの4%= 4vh 0.25rem = 1vh等...

:-sizeは、ウィンドウの高さの4%である(原因フォント・サイズはモバイルアプリの最小値を持っている)ので、 、私はすべてのCSSを変更するのが簡単だったので、私はすべてのvhの4で割るためにSASS関数を使用しています。 (1h = rem(1)= 0.25rem)

これはいつか助けてくれることを願っています。