Android ResideMenu库,Fragment底部有Cropping问题

Orc*_*say 5 android android-fragments nexus-5 android-5.0-lollipop residemenu

https://www.dropbox.com/s/lykyutdlo6386il/nexus%205%202.png?dl=0

这张照片是由nexus 5拍摄的.正如您所看到的,屏幕顶部和底部之间的差距是不同的.侧边菜单关闭时会裁剪Android徽标.底部屏幕的一部分隐藏在本机导航栏下.

https://www.dropbox.com/s/wcwuat1bwoqa26v/correct1.png?dl=0

另一方面,这张照片是由galaxy s5 mini拍摄的.您可能会注意到屏幕顶部和底部之间的间隙是相同的.完全没有问题.

它与ResideMenu库相同,具有不同的设备和Android OS(棒棒糖和kitkat).我查看布局(residemenu.xml)以找出错误的内容; 但一切似乎都对我不对.我找不到任何解决这个问题的方法.有没有办法解决正确缩放主片段(从顶部和底部相同的边距)?请帮我.

链接到库:github.com/SpecialCyCi/AndroidResideMenu

编辑:

这个链接是我正在谈论它的解决方案的问题.

Orc*_*say 11

我通过在ResideMenu库中编辑方法"ResideMenu.java"解决了这个问题.

我在一个名为"fitSystemWindows"的方法中做了一些更改

在我做出改变之前:

 @Override
    protected boolean fitSystemWindows(Rect insets) {

        this.setPadding(viewActivity.getPaddingLeft() + insets.left, viewActivity.getPaddingTop() + insets.top,
                viewActivity.getPaddingRight() + insets.right, viewActivity.getPaddingBottom() + insets.bottom);
        insets.left = insets.top = insets.right = insets.bottom = 0;
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

在我做出改变之后:

@Override
    protected boolean fitSystemWindows(Rect insets) {
        int bottomPadding=insets.bottom;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Resources resources = getResources();
            int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
            if (resourceId > 0) {
                bottomPadding += resources.getDimensionPixelSize(resourceId);
            }
        }
        this.setPadding(viewActivity.getPaddingLeft() + insets.left, viewActivity.getPaddingTop() + insets.top,
                viewActivity.getPaddingRight() + insets.right, viewActivity.getPaddingBottom() + bottomPadding);
        insets.left = insets.top = insets.right = insets.bottom = 0;
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

此更改解决了我的问题,隐藏在本机导航栏下的底部屏幕的一部分.

我希望这个解决方案对任何遇到此类问题的人都有所帮助.干杯.

  • 它不适用于所有设备 - 例如 - s6边缘 - 我们在底部获得空间 (2认同)