最近,我一直在开发一个聊天 UI,其中我有一些自定义组件,主要是一个 EditText,供用户在上面写消息。第一张图片是示例布局,不一定是我正在使用的布局,但概念是相同的。另外两张图片是 UI 的当前状态,以及我想要实现的目标。
仅供引用,这是 Activity 中的一个 Fragment,它有一个 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 }
关于android - 在键盘上方显示整个多行 EditText。不只是写一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65737254/