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)
此更改解决了我的问题,隐藏在本机导航栏下的底部屏幕的一部分.
我希望这个解决方案对任何遇到此类问题的人都有所帮助.干杯.
归档时间: |
|
查看次数: |
1551 次 |
最近记录: |