テキスト入力をページの下半分に配置すると、ユーザーがそれをタップして仮想キーボードを表示すると、ページが自動的に上にスライドします。キーボードから離れてタップすると、ページは自動的に再び下にスライドします。つまり、すべて問題ありません。
しかし、テキスト入力がページの上半分にある場合 (この場合、キーボードが表示されてもページは自動的にスライドしません)、動作は良くありません:
ユーザーがテキスト入力をタップします。
画面全体 (テキスト入力を除く) が一瞬黒くなり、キーボードが上にスライドします。
ユーザーがキーボードから離れてタップします。
ページが再びレンダリングされる前に、画面が黒く点滅します。
ただし、上記の手順をもう一度試す場合、手順は次のとおりです。 1. 上記と同じ。
同上;
同上;
画面が黒くなり、黒のままです。
ユーザーが黒い画面をタップします。
ページが再び表示されます。
テキスト入力がフォーカスを失ったとき(つまり、キーボードが非表示になったとき)を検出してページに表示したり、ページをスクロールしたりするなど、いくつかの異なることを試しましたが、黒い画面でこの問題を防ぐものは何もないようです。
テキスト入力がフォーカスを失ったときに JavaScript アラートを表示すると、黒い画面の問題を回避できます (ただし、アラートも表示したくありません!)。
また、 AndroidManifest.xml のタグ内で android:hardwareAccelerated="true" を使用してみました。これにより、この特定の問題は解決されますが、残念ながら、Web アプリ全体でさらに多くのレンダリングの問題が発生します。
誰か提案はありますか?