はじめに
Android SDK35以降から必要となる対応で対応内容などを調べなおしたりするのが面倒だと思ったので簡単なものをメモがわりに記事に残しておきます。
実装
ViewExtensionsなどで用意して各画面に書く。
もしくは、BaseActivityなどが広い画面に継承されている親クラスがあるならそこで実装するといい。
ViewCompat.setOnApplyWindowInsetsListener(this) { v, windowInsets ->
// インセットをビューのマージンとして適用します。
// paddingでも可
v.updateLayoutParams<MarginLayoutParams> {
topMargin = insets.top
bottomMargin = insets.bottom
leftMargin = insets.left
rightMargin = insets.right
}
// ウィンドウのインセットを子孫ビューに渡し続けたくない場合は、CONSUMED を返します。
WindowInsetsCompat.CONSUMED
}
参考