我正在尝试写private
以获得status bar's
高度。
private int statusBar() {
Rect rect = new Rect();
int statusBar = rect.top;
return statusBar;
}
到目前为止一切都很好。但是当我这样做时:
Toast.makeText(getApplicationContext(), "" + statusBar(), Toast.LENGTH_LONG).show();
返回0.
答案 0 :(得分:2)
刚刚在网站上搜索了一段时间并得到了这个。
private int statusBar() {
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;
int contentViewTop=
window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int statusBar = contentViewTop - StatusBarHeight;
return statusBar;
}
祝酒词:
Toast.makeText(getApplicationContext(), "" + statusBar(), Toast.LENGTH_LONG).show();
似乎有效。
<强>更新强>
尝试这个,如果不起作用,请尝试另一个。
private int statusBar() {
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int statusBar = rectgle.top;
return statusBar;
}
第二
private int statusBar() {
Rect rectgle= new Rect();
Window window= getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
int StatusBarHeight= rectgle.top;
int contentViewTop=
window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int statusBar = contentViewTop + StatusBarHeight;
return statusBar;
}
答案 1 :(得分:0)
试试这个:
Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
然后Toast
statusBarHeight