Shion のもくログ(旧: Shion の技術メモ)

使った技術のメモや、うまくいかなかった事とかを綴ります

PR

2025/04/26 ~ 2025/05/02 のもくもく日記

もくもく 前回までは

2025/04/19 ~ 2025/04/25 のもくもく日記 をご覧ください。

途中経過

その1

Android のEdge-to-Edge って、自分の中で android:fitsSystemWindows の話とごっちゃになってしまうorz

その2

enableEdgeToEdge の記述位置、下記のように微妙に違って不思議に思った。

  • Edge-to-Edge のドキュメント
    override fun onCreate(savedInstanceState: Bundle?) {
        enableEdgeToEdge()
        super.onCreate(savedInstanceState)
        ...
    }
    
  • Android Studio Meerkat で作成したプロジェクト (Empty View Activity)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        ...
    }
    

コードを追ってみたところ、Activity のconstructor にレイアウトID を指定した場合、 下記コードにあるように onCreatesetContentView をしているので、 特にこだわりが無ければ onCreate の前に書いた方が良さそうだった。

    override fun onCreate(savedInstanceState: Bundle?) {
        // Restore the Saved State first so that it is available to
        // OnContextAvailableListener instances
        savedStateRegistryController.performRestore(savedInstanceState)
        contextAwareHelper.dispatchOnContextAvailable(this)
        super.onCreate(savedInstanceState)
        ReportFragment.injectIfNeededIn(this)
        if (contentLayoutId != 0) {
            setContentView(contentLayoutId)
        }
    }

引用: https://github.com/androidx/androidx/blob/12ea61e42c7f29a0f539a069f06507a0f133910d/activity/activity/src/main/java/androidx/activity/ComponentActivity.kt#L330-L332

今回の進捗

※関連SNS
PR