实际上,我需要弄清楚的是,给定一个上下文,一种返回布尔值的方法(如果条形图在顶部则为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 – 确定状态栏是在顶部还是底部?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)