Android開発をしていて、AdMobのバナーを表示しているActivityでキーボード入力をしようとすると重くなる事象が発生.

その解決法をメモ代わりに残します.

結論(解決法)

AndroidManifest.xml のAdMobを利用しているActivityに以下の属性を追加する.

属性追加後のActivityはこんな感じです.

adjustPanだけでなく、adjustResizeでも解決できるはずなので、Activityの実装・レイアウトに応じて使い分けを行ってください.

公式ドキュメントではadjustResizeの方が望ましいと書いてありますが、個人的にはレイアウトが崩れないadjustPanの方が好みです.

 

解決方法を見つけるまでの流れ

Activityのテキストエリアに値を入れようとフォーカスを当てると、キーボードが表示される.

キーボードをタッチしても値が入っていないように見えたが、テキストエリアからフォーカスを外す(キーボードを隠す)と値が入っていることが確認できた.

Logcatを見ると以下のエラーが大量に出ていることを確認.

これはAdMobが出しているエラーであり、かつキーボードを表示したとたんにこのログが出ることを確認できた.

この事実から、以下のように推測.

キーボード表示 → 広告表示用のエリアが見えなくなる → 何度も表示を試そうとして、大量にエラーがでる → 処理が重くなる → キーボードの入力がリアルタイムで反映されなくなる

 

キーボード表示側に問題があると考え、いろいろ試した結果、結論の解決法にたどり着きました.

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *