我将 Activity
设置为全屏(没有 ActionBar
或 StatusBar
),如下所示:
在我的 list 中:
<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>
这工作得很好。没有 ActionBar
或 StatusBar
。
这就是问题所在。
在我的 Activity 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();
关于java - 状态栏什么时候隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57070748/