首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ResideMenu安卓布局高度错误

ResideMenu安卓布局高度错误
EN

Stack Overflow用户
提问于 2017-07-03 01:41:18
回答 1查看 203关注 0票数 0

我使用的是Android ResideMenu库,除了错误计算我的主要“内容活动”的大小的问题之外,这个库通常都很好。

我已经测试了几个设备,但似乎每个设备都有点问题,当我试图显示活动底部的项目时,比如快餐栏或自定义弹出窗口(见图)。

据我所知,它可能与ResideMenu.java中的protected boolean fitSystemWindows(Rect insets)方法有关,但对我来说,这似乎是微不足道的。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2017-07-03 02:16:44

当我使用这个库时,ResideMenu和我遇到了同样的问题。在ResideMenu.java文件中,我对两个函数进行了更改。

功能:

代码语言:javascript
复制
@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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44873537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档