我试图弄清楚如何判断状态栏的位置(顶部或底部)。我试图检查HierarchyViewer
但没有看到状态栏视图。
我真正需要弄清楚的是,在给定上下文的情况下,一种返回 a 的方法boolean
(如果 bar 在顶部,则为 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, 0, 0, 0
D/Menu(1007): Decor View Dimensions0 0 800 1216
我在想什么/做错了什么?