コムセント 技術情報

  1. TOP
  2. コムセント 技術情報
  3. Android javaで全画面表示(没入感モード)にならないときに確認すること

Android javaで全画面表示(没入感モード)にならないときに確認すること

Android Studio Dolphin | 2021.3.1 Patch 1
実機 : Pixel 4a (5G) Android 13
での動作確認済みです。

html や php でアプリ画面を作成し、java や kotlin から Webview で読み込む
というアプリを作成した際、アプリ画面が全画面用のサイズで作成されていました。(ステータスバーやナビゲーションバーの部分までデザインがありました)
その際、エミュレーターでは設定したとおりに表示されるのに、なぜか普段使用している私の android では全画面になりませんでした。
いろいろ試行錯誤してやっと全画面表示ができたので、まとめます。

全画面表示について

通常なにも設定しないレイアウトで開いた場合、ステータスバー(通知アイコンや電池残量等が表示される部分)や、ナビゲーションバー(画面下部のホームボタンやナビゲーションバー)に背景が敷かれ、レイアウト部分はそれ以外のエリアに表示されます。

方法はいくつかありますが、ここではテーマで設定する方法を記載します。

//res/values/.xml のstyle タグの中に以下の item を追加

<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
//AndroidManifest.xml の全画面にしたい activity または application 自体に theme を設定

android:theme="@style/ ~~~

ここまでで、エミュレーターでは全画面表示ができました。

普段使いしている android で全画面にならなかった

普段自分が使用している android では、設定でダークモードがオンになっていました。
もしや・・・と思い、ダークモードの設定をオフにして実行してみたところ・・・。

全画面表示になりました!

これで変更されるということは、ダークモード用の設定ファイルがあるということだ!
ということに気づけました。実際に、values-night というそれっぽいディレクトリが既に存在していました。
さらにその中には values ディレクトリとおなじく themes.xml が存在してます。
そこには編集前の values / themes.xml と同じような内容が記載されています。やっと犯人を見つけることができました。

values-night / themes.xml に values / themes.xml の内容をコピー
して、端末の設定をダークモードに戻して実行してみたところ・・・

全画面表示になりました!

さいごに

Googleで全画面表示の方法や、ならない場合を検索したときに引っかからなかったので、おそらくすでに開発経験がある方には周知の事実なのかもしれません。
が、アプリ開発にあまり携わってこなかった方には分かりづらい部分かなと思います。
themes.xmlが複数あるということに気づくことができたらあまり大きな問題ではなかったかもしれませんが・・・。

Android Studio Dolphin | 2021.3.1 Patch 1 では、New Project > Empty Activity で新規アプリを作成する際にデフォルトで app / src / main / res / values-night / themes.xml が作成されていました。
もしかしたらこのディレクトリ自体を消去してしまえばダークモードでも、非ダークモードの設定と同じ設定が使用されるのかもしれませんが、未確認です。

今回このようなことが起こったことにより、アプリ開発では端末自体の設定に大きく左右される場合があるということがわかりました。
今後、何か想定通りに動かないようなことがあった場合、端末の設定も考慮していきたいです。

プログラマー/A.A

このメンバーの記事一覧へ

おすすめ記事