如何解决在键盘上方显示整个多行 EditText不只是写线
最近,我一直在开发一个聊天 UI,其中我有一些自定义组件,主要是 EditText,供用户在上面写消息。第一张图片将是一个示例布局,不一定是我正在使用的那个,但概念是相同的。另外两张图片是 UI 的当前状态,以及我想要实现的目标。
仅供参考,这是一个 Fragment,在一个 Activity 中,它有一个 BottomNavigation 组件。我要澄清一下,因为如果我只应用 windowSoftInputMode="adjustResize"
恐怕BottomNavigation 组件也会出现在键盘上方,按钮也会出现。
所以我猜问题是:我如何告诉键盘保持在整个 EditText 下方?这甚至可能吗?这是我最关心的问题。
谢谢!
解决方法
在钻了很多兔子洞之后,我基本上找到了三种方法:
-
使用
ViewTreeObserver.OnGlobalLayoutListener
,在上面提供的问题 ADM 中提到,反过来又指这篇文章 here。 -
利用 this 库,对许多人来说,这似乎可以解决问题。
-
最后,我见过的最少的一个。对于 API 级别 30 或更高级别的设备,您可以使用以下代码段来监听键盘可见性的变化。对它进行了完整的描述,还有许多其他有用的新东西,here:
ViewCompat.setOnApplyWindowInsetsListener(view) { v,insets -> val imeVisible = insets.isVisible(Type.ime()) // do something with imeVisible value }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。