如图所示,点击输入框及选择图片和发送按钮时软键盘显示且不消失,点击其他区域,则隐藏软键盘。

主要代码如下:

override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {if (ev!!.getAction() === MotionEvent.ACTION_DOWN) {val v = currentFocusif (isShouldHideInput(v, ev!!)) {//点击的是其他区域,则调用系统方法隐藏软键盘val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManagerif (imm != null) {imm!!.hideSoftInputFromWindow(v!!.windowToken, 0)}}return super.dispatchTouchEvent(ev)}// 必不可少,否则所有的组件都不会有TouchEvent了return if (window.superDispatchTouchEvent(ev)) {true} else onTouchEvent(ev)
}/*** 判断是否是输入框区域*/
fun isShouldHideInput(v: View?, event: MotionEvent): Boolean {if (v != null) {when (v.id) {R.id.etEditContent -> {val leftTop = intArrayOf(0, 0)//获取输入框当前的location位置v!!.getLocationInWindow(leftTop)val left = leftTop[0]val top = leftTop[1]val bottom = top + v!!.getHeight()val right = DisplayUtil.getScreenWidth(this)return if (event.x > left && event.x < right&& event.y > top && event.y < bottom) {// 点击的是输入框区域,保留点击EditText的事件false} else {true}}else -> {return false}}}return false
}
 

在第一次进入该页面、弹出软键盘、收到消息的时候,将RecycleView滑至最后一条:

rvSingleChat.scrollToPosition(adapter!!.itemCount - 1)

记得在当前Activity的配置文件里面需要设置为:

android:windowSoftInputMode="adjustResize"

android仿微信、QQ等聊天界面,实现点击输入框弹出软键盘、点击其他区域收起软键盘,默认滑动至最低端相关推荐

  1. android标题栏不被顶上去,Android仿微信QQ聊天顶起输入法不顶起标题栏的问题

    在这记录一下输入法弹出的一系列问题,有的输入法弹出就把整个布局弹上去,有的输入法弹出布局不会有变化,有的输入法弹出遮盖输入框等等问题,网上也有很多说加着加那的,但是看一下都不是很完整,解决不了所有问题 ...

  2. Android 仿微信显示的聊天照片

    Android 仿微信显示的聊天照片 Android 仿微信显示的聊天照片,效果如下图所示: 这种显示的样式就是和微信的显示照片的样式是一样的,微信的实现我不知道是否和我一样,今天我来和大家介绍一下我 ...

  3. android 仿微信头像裁剪,Android仿微信QQ设置图形头像裁剪功能

    最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue ...

  4. Android 仿微信添加群聊界面——addView

    仿微信添加群聊界面--addView 转载于:https://www.cnblogs.com/zhujiabin/p/5916746.html

  5. Android源码编译:任意界面屏幕边缘上滑弹出快捷操作栏【一键加速、开关控制】

    <The Fucking Source Code> 注:以下均为android源码Framework层修改. 设计实现在任意界面从屏幕边缘上滑弹出快捷操作栏,包括亮度调节.正在后台运行的程 ...

  6. html5做探探,基于Nuxt.js+Vue聊天实例|nuxt仿微信/探探聊天界面

    1.项目简介 Nuxt.js是目前比较热门的服务端渲染SSR框架.凭借其更好的SEO.更快的内容到达时间(*首屏渲染速度快*) 加之基于Vue.js技术开发,更易于上手,获得了很多技术开发者的青睐. ...

  7. Android 仿微信 QQ 图片裁剪,赶紧收藏起来!

    在正文之前,先公布下周三的送书中奖名单,点赞前15名为: 码不停蹄 િ?ી.zdxོ.gaolhjy.C.Aiden_ryan.进进.WhenSun .明($?.啊鑫.久伴.街 景 -.小石头.纸.冯 ...

  8. Android仿微信QQ群头像生成

    先上效果图 qq效果的图片是在github上找的项目 https://github.com/kongnanlive/android-combination-avatar 仿微信群头像是自己鼓捣出来的 ...

  9. Android仿微信朋友圈4实现评论动态时输入框和软键盘自动定位到内容下面

    最近做完朋友圈功能后,测试提出一个功能优化,在某些发布的动态下评论时软键盘和输入框遮当内容了,这个用户体验感觉不是很好,于是根据今日头条和其他热门的App评论时软键盘和输入框都是在内容下面.Scrol ...

最新文章

  1. jenkins2 multibranch
  2. node 压缩模块速成
  3. R语言ggplot2可视化:指定标题的坐标轴位置(X轴坐标和Y轴坐标),将图像的标题(title)放置在图像内部的指定位置(customize title positon in plot)
  4. 97.5%准确率的深度学习中文分词(字嵌入+Bi-LSTM+CRF)
  5. 台式电脑耳机插孔在哪_不到一千元的迷你电脑究竟如何?Intel NUC7CJYH测评来了...
  6. html读取本地txt_利用MySQL/MariaDB的逻辑缺陷伪造恶意服务端读取客户端文件
  7. ZKWeb网站框架的动态编译的实现原理
  8. Python中几个有趣的函数
  9. 【树莓派】在树莓派的Android系统中安装APK应用
  10. java 实现敏感词汇的过滤
  11. hulu dpp_如何将Hulu视频下载到您的PC以便离线观看
  12. Siebel系统中配置LDAP认证
  13. 用计算机房的英语造句简单,用英语造句子elder.doc
  14. 植物大战僵尸修改游戏存档
  15. canvas 的绘图模式 retained-mode(保存模式) 和 immediate-mode (立即模式)
  16. C语言:L1-070 吃火锅 (15 分)
  17. Gibbs Sampling\吉布斯采样(一)
  18. Python读取和操作Excel(.xlsx)文件
  19. 力扣 387. 字符串中的第一个唯一字符 C语言实现
  20. 什么是token?Android中token的使用讲解

热门文章

  1. 随便学学Python-day7-字典和集合
  2. 玻纤效应对skew的影响(一)
  3. 读书百客:《感遇·江南有丹橘》赏析
  4. 【转】浅谈C# 多态的法力
  5. 从0-1的CTF比赛环境搭建过程
  6. can协议crc计算_CAN总线通信的CRC校验方法
  7. 专家议微软黑屏:目的正当 手段未必正当
  8. 各种区块链浏览器的地址总汇
  9. php的解析别名,浅谈laravel aliases别名的原理
  10. 计算机课程老师讲什么初中,初中计算机老师的教学工作总结