android - 在键盘上方显示整个多行 EditText。不只是写一行

标签 android android-layout android-edittext android-softkeyboard

最近,我一直在开发一个聊天 UI,其中我有一些自定义组件,主要是一个 EditText,供用户在上面写消息。第一张图片是示例布局,不一定是我正在使用的布局,但概念是相同的。另外两张图片是 UI 的当前状态,以及我想要实现的目标。

enter image description here

仅供引用,这是 Activity 中的一个 Fragment,它有一个 BottomNavigation 组件。我做了这个澄清,因为,我是否应该只应用 windowSoftInputMode="adjustResize" 恐怕 BottomNavigation 组件也会出现在键盘上方,按钮也会出现。

所以我猜问题是:如何让键盘保持在整个 EditText 下方?这可能吗?这是我主要关心的问题。

谢谢!

最佳答案

在深入探索之后,我基本上找到了三种方法:

  1. 使用 ViewTreeObserver.OnGlobalLayoutListener,在上面提供的问题 ADM 中提到,这反过来指的是这篇文章 here .

  2. 利用 this对于许多人来说,图书馆似乎可以解决问题。

  3. 最后,我见过最少的那个。对于 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/

相关文章:

Android:共享兄弟 View 按下状态

java - 在 Android 中组合 Handler 和 AsyncTask - 明显的缺陷?

java - 删除 BottomNavigationView 图标和中心标题

android - 如何修复此布局错误。按钮未正确放置?

android - 对于阿拉伯语,EditText 提示中的光标不是从右开始

android - 如何从 RecyclerView 中的 EditText 获取字符串值?

java - Android应用程序类-字段成员的生命周期

java - 安卓/MongoDB : "NoClassDefFoundError: com.mongodb.DBPortPool"

android - 使图像尺寸与屏幕尺寸成一定比例

android - 如何用占位符填充edittext直到它没有被填充