Android 解决由于使用SlidingMenu导致虚拟键盘挡住底部菜单栏的问题
2017-04-05 11:16
447 查看
最近发现当项目运行在5.0以上且带有虚拟键盘的手机上时会出现虚拟键盘挡住项目底部菜单栏的问题,试了若干方法,比如这个链接,但效果并不是很理想,后来发现原来是使用了SlidingMenu这个框架造成的,修改其中SlidingMenu下的fitSystemWindows即可解决这个问题:
/* (non-Javadoc) * @see android.view.ViewGroup#fitSystemWindows(android.graphics.Rect) */ @SuppressLint("NewApi") @Override protected boolean fitSystemWindows(Rect insets) { int leftPadding = insets.left; int rightPadding = insets.right; int topPadding = insets.top; int bottomPadding = insets.bottom; if (CommonUtils.getSDKVersionCode(getContext())>=21&&CommonUtils.checkDeviceHasNavigationBar(getContext())) { Resources resources = getContent().getResources(); int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android"); if (resourceId > 0) { bottomPadding += resources.getDimensionPixelSize(resourceId); } } if (!mActionbarOverlay) { Log.v(TAG, "setting padding!"); setPadding(leftPadding, topPadding, rightPadding, bottomPadding); } return true; }也就是如果系统版本高于5.0并且存在虚拟键盘时,计算一下虚拟键盘的高度,然后给bottomPadding加上虚拟键盘的高度即可!
相关文章推荐
- 已解决:EditText被底部固定栏挡住,使用AndroidBug5497Workaround出现兼容问题
- android 自定义弹出框被系统底部虚拟键盘挡住、Pad上点击空白区域弹出框不dismiss BUG解决
- 使用flex布局解决安卓手机上固定在底部的按钮,在键盘弹起后挡住input输入框的问题
- 解决由于使用代理服务器导致Foxmail无法收发邮件的问题
- Android 解决ListView在使用多个布局的同时使用convertView进行缓存时导致ListView下面有空白的问题
- Android Activity使用Dialog样式导致点击空白处自动关闭的问题解决
- ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
- 解决Android使用ScrollView和 ListView时底部空间随着输入法向上移动的问题
- Android软键盘使用及输入法挡住输入框的问题解决
- 【转载】【完美解决系列】解决在Android中使用background时导致图片被拉伸的问题
- 【完美解决系列】解决在Android中使用background时导致图片被拉伸的问题
- Android开发中关于如何解决Fragment中弹出键盘会把底部菜单栏顶上去的问题以及返回键的监听问题
- 解决Android使用Svg兼容5.0以下手机导致OOM的问题
- Android解决ScrollView视图导致其底部的布局栏被推到上边的问题
- 解决使用slidingmenu控件导致底部虚拟键覆盖问题
- Android开发问题:底部弹出popwindow,会被某些手机底部的菜单栏挡住
- android中使用底部菜单栏造成Viewpager+fragment中ListView数据被隐藏一条的解决
- 快速解决Android适配底部返回键等虚拟键盘的问题
- 使用druid数据源,由于网络问题导致oracle SocketInputStream.socketRead0堵塞解决办法
- Android开发中,使用线程下载apk文件,出现FileNotFound的问题,解决办法