900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Android软键盘挡住输入框

Android软键盘挡住输入框

时间:2018-08-29 07:07:44

相关推荐

Android软键盘挡住输入框

今天产品突然过来说APP登录界面软键盘遮挡了editText的输入框体验不好,确实是,那就开始操作:

在网上一查,打多数都是这样写的:

第一种

在manifests进行配置另一种在activity onCreate()之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);其实吧,这种确实可以实现键盘不被输入框遮挡:* adjustPan是把整个界面向上平移,使输入框露出,不会改变界面的布局;* adjustResize则是重新计算弹出软键盘之后的界面大小,相当于是用更少的界面区域去显示内容,输入框一般自然也就在内了,键盘被遮挡当然不是说manifests activiy就不进行配置了,如果需要进入当前页面自动弹起键盘manifests中加入android:windowSoftInputMode="adjustResize",重要重要有人说键盘是不挡住输入框了,我还要下面登录按钮也不被登录按钮遮挡,头疼,没事,我这儿一一实现:接下来就来介绍我的方法呗:咋样,效果还是可以的吧,这是登录界面ui,点击输入输入号码弹起键盘,addSoftKeyboardStateListener监听键盘是否弹起,弹起开始进行动画效果,比如把登录上面距离缩小,把货币下面的间距变小一点,来进行扩大键盘展开的空间,当然这样也是不够的,加点动画效果,要不就会变得界面有的突显,下面代码:LinearLayout.LayoutParams lps = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DisplayUtils.dip2px(50)); //重新设置高度lps.setMargins(0, DisplayUtils.dip2px(60), 0, 0);//int left, int top, int right, int bottommNumberText.setLayoutParams(lps); //控件写入当然也有工具类进行对键盘的高度进行测量,给控件重新相对于的间距:

@Overridepublic void onGlobalLayout() {final Rect r = new Rect();//r will be populated with the coordinates of your view that area still visible.activityRootView.getWindowVisibleDisplayFrame(r);final int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top);if (!isSoftKeyboardOpened && heightDiff > activityRootView.getRootView().getHeight()/3) { // if more than 100 pixels, its probably a keyboard...isSoftKeyboardOpened = true;notifyOnSoftKeyboardOpened(heightDiff);} else if (isSoftKeyboardOpened && heightDiff < activityRootView.getRootView().getHeight()/3) {isSoftKeyboardOpened = false;notifyOnSoftKeyboardClosed();}}这样差不多也就完成了,一些动画可以根据给效果来进行编写。项目已上传:地址:/download/zyy_give/11126703

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。