在潜伏了很多各种回应之后(感谢这个很棒的网站),我问了我的第一个问题。如果我做错了什么,请原谅我!
我想知道是否有办法在 Android 平板电脑上找到系统栏的宽度。不是带有虚拟按钮(返回、主页、菜单...)的部分,可点击部分会弹出所有通知消息。
并且如果有一种简单的方法可以知道系统栏/状态栏是在顶部还是底部。从对此问题的其他回应来看,getDecorView 似乎在所有情况下都不可靠。
谢谢!
在潜伏了很多各种回应之后(感谢这个很棒的网站),我问了我的第一个问题。如果我做错了什么,请原谅我!
我想知道是否有办法在 Android 平板电脑上找到系统栏的宽度。不是带有虚拟按钮(返回、主页、菜单...)的部分,可点击部分会弹出所有通知消息。
并且如果有一种简单的方法可以知道系统栏/状态栏是在顶部还是底部。从对此问题的其他回应来看,getDecorView 似乎在所有情况下都不可靠。
谢谢!
很少有相关问题可以帮助您在 android 平板电脑上的状态栏高度和 系统栏大小
在许多情况下,您不需要知道系统栏的位置,也不需要正确绘制自定义组件(即不被系统栏覆盖),您需要的只是覆盖fitSystemWindows
如下所示:
(注意注释:当 insets.top > 0 时,您可以期望系统栏位于顶部,并且在 insets.bottom > 0 时类似)
@Override
protected boolean fitSystemWindows(Rect insets) {
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) this
.getLayoutParams();
int top = params.topMargin + insets.top;
int bottom = params.bottomMargin + insets.bottom;
int left = params.leftMargin + insets.left;
int right = params.rightMargin + insets.right;
/* Usually when insets.top > 0 means the systembar on the top and simiarly if insets.bottom > 0*/
params.setMargins(left, top, right, bottom);
return true;
}