我正在使用Android ResideMenu库,除了错误计算主要“内容活动”大小的问题外,该库一般都很好。
我已经使用多个设备进行了测试,但每个设备似乎有点偏差,当我尝试从活动底部显示项目时会出现问题,例如小吃栏或自定义弹出窗口(见图。)
从我读过的内容来看,它可能与protected boolean fitSystemWindows(Rect insets)
中的ResideMenu.java
方法有关,但这对我来说似乎微不足道。
有什么想法吗?
答案 0 :(得分:0)
当我使用这个库ResideMenu
时,我遇到了同样的问题。在里面
ResideMenu.java 文件我对两个函数进行了更改。
功能:
@Override
protected boolean fitSystemWindows(Rect insets) {
int bottomPadding = viewActivity.getPaddingBottom() + insets.bottom;
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
boolean hasHomeKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME);
if (!hasBackKey || !hasHomeKey) {//there's a navigation bar
bottomPadding += getNavigationBarHeight();
}
this.setPadding(viewActivity.getPaddingLeft() + insets.left,
viewActivity.getPaddingTop() + insets.top,
viewActivity.getPaddingRight() + insets.right,
bottomPadding);
insets.left = insets.top = insets.right = insets.bottom = 0;
return true;
}
private int getNavigationBarHeight() {
Resources resources = getResources();
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
return resources.getDimensionPixelSize(resourceId);
}
return 0;
}