Androidタブレットのステータスバーの高さと
システムバーのサイズに役立つ関連する質問がいくつかあります
多くの場合、システム バーの場所を知る必要はなく、カスタム コンポーネントを正しく描画する (つまり、システム バーに覆われないようにする) 必要があるのは、fitSystemWindows
以下に示すように をオーバーライドすることだけです。
(コメントに注意してください:insets.top > 0 の場合、システムバーが上部にあると予想でき、 insets.bottom > 0 の場合も同様です)
@Override
protected boolean fitSystemWindows(Rect insets) {
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) this
.getLayoutParams();
int top = params.topMargin + insets.top;
int bottom = params.bottomMargin + insets.bottom;
int left = params.leftMargin + insets.left;
int right = params.rightMargin + insets.right;
/* Usually when insets.top > 0 means the systembar on the top and simiarly if insets.bottom > 0*/
params.setMargins(left, top, right, bottom);
return true;
}