我将Activity
设置为全屏(没有ActionBar
或StatusBar
),如下所示:
在我的清单中:
<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
。这是问题所在。
在我的活动
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();