横向きのみのフルスクリーンで表示する - Android開発メモ

f:id:turu26:20191001190335p:plain
Enable fullscreen mode - Android Developers

画面を横向きに固定する

画面の向きはAndroidManifest.xmlandroid:screenOrientation属性から指定する

<activity android:name=".MainActivity"
          android:screenOrientation="userLandscape">

フルスクリーン表示

以下を非表示にして、さらに非表示にした時のレイアウトを指定しないといけないっぽいです。

  • ステータスバー
  • タイトルバー
  • ナビゲーションバー

今のwindowがフォーカスされた時(onWindowFocusChanged)に呼び出す例。

    override fun onWindowFocusChanged(hasFocus: Boolean) {
        super.onWindowFocusChanged(hasFocus)
        if (hasFocus) hideSystemUI()

    }

    private fun hideSystemUI() {
        window.decorView.systemUiVisibility = (
                // ナビバーを隠れているようにレイアウトする
                View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                // ステータスバーが隠れているようにレイアウト
                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                // ナビゲーションバー(下部)を隠してインタラクションがあっても非表示にし続ける
                or View.SYSTEM_UI_FLAG_IMMERSIVE
                // タイトルバー(上部)を隠す
                or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                // インタラクションがない間ナビゲーションバーを非表示にする
                or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                // ステータスバーを隠す
                or View.SYSTEM_UI_FLAG_FULLSCREEN)
    }

参考