最近开发遇到一个问题,app首页底部的一部分,被手机的虚拟按键遮挡住了,导致内容显示不全,之后各种搜索,记录如下.
①:
我用到了slidingmenu控件加载,而slidingmenu在版本比较高的手机上,显示有隐藏问题,没有计算虚拟按键所占用的空间,解决:
找到slidingmenu.java这个类,修改protected boolean fitSystemWindows(Rect insets)方法内容,将里面的
int bottomPadding = insets.bottom;修改为:
int bottomPadding = insets.bottom; if (Build.VERSION.SDK_INT >= 21) { Resources resources = getContent().getResources(); int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); if (resourceId > 0) { bottomPadding += resources.getDimensionPixelSize(resourceId); } }此处参考 : https://github.com/jfeinstein10/SlidingMenu/issues/680
②:
当然还可以自己判断一下手机型号或者版本,然后在app被遮挡页面底部,填充一个view,将自己的布局顶起来,不过这个方法很low,而且使用范围也不是很广泛,
Android机型太多太乱,不容易写逻辑.
也有个知乎参考: https://www.zhihu.com/question/35292413
③:一些别的方法就不列举了,比如隐藏虚拟机,换控件之类的.
补充: 随着android版本的频繁更新,或者产品的一些奇葩要求,slidingmenu貌似有点力不从心了,还是考虑原生控件吧,而且as在创建新的项目时候,选择可以
侧滑的项目,还是很方便的.