はじめに
Android12の対応をする際、ステータスバーの高さを取得する方法を変更する必要が出てきたので、その際対応した内容を備忘録的に残しておこうと思います。
取得方法
取得方法は比較的シンプルです。
以下のようにsetOnApplyWindowInsetsListenerを使用して取得する形になります。
view.setOnApplyWindowInsetsListener { v, insets ->
val statusBarHeight = insets.getInsetsIgnoringVisibility(WindowInsets.Type.systemBars()).top
}
以上になります。
注意点としては、上記は30以上が対象になるので、30以下のバージョンでは取得方法を変える必要があります。
さいごに
ステータスバーを透過していたりするとこの辺りの修正が必須になりますよね。
透過対応はなかなか大変な作業の一つなので、この辺りの実装は慎重に行っていきたいところです。