什么时候隐藏状态栏?

时间:2019-07-17 07:35:00

标签: java android

我将Activity设置为全屏显示(没有ActionBarStatusBar),如下所示:

在我的清单中

<activity
    android:name=".SomeActivity"
    android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
/>

然后以我的风格:

<style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

这很好用。没有ActionBarStatusBar


问题出在这里。

在活动onCreate中,我得到了屏幕的显示大小(getRealMetrics),当我按下Button时,我记录了值,如下所示:

Button button;
int mWidth = 0;
int mHeight = 0;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.some_activity);

    DisplayMetrics displayMetrics = new DisplayMetrics();
    WindowManager wm = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
    Display disp = wm.getDefaultDisplay();
    disp.getRealMetrics(displayMetrics);


    mWidth = disp.getWidth();
    mHeight = disp.getHeight();

    button = findViewById(R.id.button);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Log.e("Height = "+String.valueOf(mHeight)+" Width = "+String.valueOf(mWidth));              
        }
    });

}

我正在测试的设备具有以下屏幕尺寸1920x1080。当我按下Button时,我会在日志中看到以下内容:

Height = 1857 Width = 1080

我检查了状态栏的高度,它的高度为63px。就是1920 - 63 = 1857。换句话说,当我按下Button时,状态栏仍会被考虑在内。


话虽如此,当状态栏隐藏时,有人可以告诉我吗?

1 个答案:

答案 0 :(得分:0)

您可以在“ setContentView”之后尝试。

Display disp = getWindowManager().getDefaultDisplay();
mWidth = disp.getWidth();
mHeight = disp.getHeight();