1

あらゆる種類の反応 (このすばらしい Web サイトに感謝します) をたくさん探した後、最初の質問をします。私が悪いことをしたら、私を許してください!

Android タブレットでシステムバーの幅を見つける方法があるかどうか知りたいと思っていました。仮想ボタン (戻る、ホーム、メニューなど) のある部分ではなく、すべての通知メッセージをポップするクリック可能な部分です。

また、システムバー/ステータスバーが上にあるか下にあるかを簡単に知る方法があるかどうか。その問題に関する他の回答から、 getDecorView はすべての場合に信頼できるとは限りません。

ありがとう!

4

1 に答える 1

0

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;
}
于 2013-01-01T04:47:31.460 に答える