4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AndroidのWebViewで、画面回転した後にフォーカスを当ててもソフトウェアキーボードが表示されない不具合に対する回避策

Last updated at Posted at 2023-02-01

要件

Androidで以下のような要件がありました。

  • WebView画面
  • 縦画面でコメントが入力できる
  • WebChromeClientから受け取ったView(動画)を全画面(横画面)で表示する

不具合

この時特定の端末で
「画面回転をした後に、WebView内の入力欄にフォーカスを当てても、ソフトウェアキーボードが表示されない」
という症状がありました。

再現手順

  • 該当の画面に遷移する
  • WebView内の動画を最大化して、横画面で表示する
  • 縦画面に戻す
  • WebView内のテキスト入力欄にフォーカスしても、ソフトウェアキーボードが表示されない

修正方法

回避策として、以下の実装を行いました。

kotlin WebViewActivity.kt
override fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig)
    webView.clearFocus()
    webView.requestFocus(View.FOCUS_DOWN)
}

一度WebView内のフォーカスをクリアしてから、再度WebViewにフォーカスを当てます。
そうすると、テキスト入力欄を選択した(フォーカスが当たった)ときに、ソフトウェアキーボードが表示されるようになります。

終わりに

あまりこういった要件のケースは無いと思うのですが、意外と解決に時間がかかってしまったので、
こちらを共有したいと思います。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?