android – 确定状态栏是在顶部还是底部?

android – 确定状态栏是在顶部还是底部?,第1张

概述我试图找出如何告诉状态栏的位置(顶部底部).我试图检查HierarchyViewer但没有看到状态栏视图. 实际上,我需要弄清楚的是,给定一个上下文,一种返回布尔值的方法(如果条形图在顶部则为true,如果不在条形图则为false) – 就像它不在大多数平板电脑上一样.我写了一个简单的解决方案,试图找出状态栏位于顶部或底部,但它似乎没有帮助: private boolean isStatusBa 我试图找出如何告诉状态栏的位置(顶部或底部).我试图检查HIErarchyVIEwer但没有看到状态栏视图.

实际上,我需要弄清楚的是,给定一个上下文,一种返回布尔值的方法(如果条形图在顶部则为true,如果不在条形图则为false) – 就像它不在大多数平板电脑上一样.我写了一个简单的解决方案,试图找出状态栏位于顶部或底部,但它似乎没有帮助:

private boolean isstatusBarattop(){    if (!(getContext() instanceof Activity)) {        return !getContext().getResources().getBoolean(R.bool.istablet);    }    Window window =  ((Activity) getContext()).getwindow();    if(window == null) {        return !getContext().getResources().getBoolean(R.bool.istablet);    }    Activity activity = (Activity)getContext();    Rect rect = new Rect();    window.getDecorVIEw().getwindowVisibledisplayFrame(rect);    VIEw ourVIEw = window.findVIEwByID(Window.ID_ANDROID_CONTENT);    Log.d("Menu","Window top: "+ ourVIEw.gettop() + ","+ourVIEw.getBottom()+ ","+ourVIEw.getleft()+","+ourVIEw.getRight());    Log.d("Menu","Decor VIEw Dimensions"+rect.flattenToString());    return  ourVIEw.gettop() != 0;}

由于某种原因,我得到以下输出(在Nexus 7平板电脑上运行):

D/Menu(1007): Window top: 0,0D/Menu(1007): Decor VIEw Dimensions0 0 800 1216

我在想什么/做错了什么?

解决方法 这是唯一对我有用的方法.以下方法返回顶部状态栏的高度.因此,如果相应的返回值等于0,则窗口顶部没有状态栏.
public static int gettopStatusbarHeight(Activity activity) {    Rect rect = new Rect();    activity.getwindow().getDecorVIEw().getwindowVisibledisplayFrame(rect);    return rect.top;}
总结

以上是内存溢出为你收集整理的android – 确定状态栏是在顶部还是底部?全部内容,希望文章能够帮你解决android – 确定状态栏是在顶部还是底部?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1139095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存