我使用的是Android ResideMenu库,除了错误计算我的主要“内容活动”的大小的问题之外,这个库通常都很好。
我已经测试了几个设备,但似乎每个设备都有点问题,当我试图显示活动底部的项目时,比如快餐栏或自定义弹出窗口(见图)。
据我所知,它可能与ResideMenu.java中的protected boolean fitSystemWindows(Rect insets)方法有关,但对我来说,这似乎是微不足道的。
有什么想法吗?

发布于 2017-07-03 02:16:44
当我使用这个库时,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;
}https://stackoverflow.com/questions/44873537
复制相似问题