ResideMenu Android布局高度错误

时间:2017-07-02 17:41:18

标签: java android residemenu

我正在使用Android ResideMenu库,除了错误计算主要“内容活动”大小的问题外,该库一般都很好。

我已经使用多个设备进行了测试,但每个设备似乎有点偏差,当我尝试从活动底部显示项目时会出现问题,例如小吃栏或自定义弹出窗口(见图。)

从我读过的内容来看,它可能与protected boolean fitSystemWindows(Rect insets)中的ResideMenu.java方法有关,但这对我来说似乎微不足道。

有什么想法吗?

enter image description here

1 个答案:

答案 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;
}