Android-Android怎么判断状态栏是否存在

前端开发 前端开发 主题:1148 回复:2395

Android-Android怎么判断状态栏是否存在

清晨说ぺ晚安 发布于 2017-10-21 字数 108 浏览 1064 回复 2

我需要判断一下状态栏是否存在,以便让应用适应屏幕,但是不知道要用什么方法去判断这个状态栏是否存在,求指导

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

甜柠檬 2017-10-24 2 楼
Rect rc = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(rc);

int screenHeight = getScreenHeight(); int statusbarHeight = screenHeight - rc.height;

如果 statusbarHeight 为 0,则 statusbar 不存在。适用于 android 各版本。

getScreenHeight 参见我的另外一个回答:Android获取屏幕大小为什么会自动减去状态栏高度

泛泛之交 2017-10-22 1 楼

可以试试这样:

Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;

decorView是window中的最顶层view,可以从window中获取到decorView;
decorView的getWindowVisibleDisplayFrame方法获取到程序显示的区域,包括标题栏,但不包括状态栏。
因此状态栏高度就是frame.top,如果frame.top==0,那就是不存在喽