我将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时,状态栏仍然被考虑在内。那么,状态栏何时隐藏?

最佳答案

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

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

09-26 15:01
查看更多