无法在 LazyColumn 中使用屏幕底部的 TextField

2023-11-25

我有这个代码

setContent {
  val items = mutableListOf<Int>().apply {
    (1..100).forEach { add(it) }
  }
  LazyColumn {
    items(items) { item ->
      TextField("$item", {})
    }
  }
}

With android:windowSoftInputMode="adjustResize" in my AndroidManifest.xml.

如果我点击一个TextField在列表顶部,我可以很好地输入文本。

如果我点击一个TextField在屏幕底部附近,键盘会短暂出现,然后很快消失,并阻止我输入文本。

当出现以下情况时如何输入文字TextField是在屏幕的底部吗?谢谢!


您的键盘在出现短暂、闪亮的时刻后就会消失。原因如下:

您点击TextField,它调用它的内置焦点请求程序,并通过调用适当的(或不适当的,谁说的)内部方法向操作系统请求焦点,结果,键盘弹出(同样是内置机制。)只要字段可见,您就可以输入更多内容;或者用 Compose 术语来说,只要持有请求者的 Composable 就处于组合状态。

应该清楚的是,一旦拥有焦点请求者的可组合项离开屏幕,它就会被销毁(不是每次都会被销毁,只有某些特定情况才会被销毁......,但你的就是其中之一),当可组合项被销毁时,焦点请求者也被销毁。没有焦点请求者,没有焦点所有者——键盘消失了。

现在这非常重要,因为您正在使用LazyColumn,一个懒惰的可组合项,因其对用户不再可见的可组合项的无情屠杀而臭名昭著。因此,只要关注的是顶部(或其他“可见”)文本字段,它就会保持并按预期工作。然而,底部的文本字段,as键盘弹出,超出了可见范围,以至于被屠杀(回收是技术术语,但这有什么意思?),剥夺了键盘的用途。

现在,这个懒惰的专栏就像任何罪犯一样,留下了线索,却没有注意到,这导致我们当场抓住了他。看到该专栏的实际运作确实非常有趣。

现在,解决方法包括使用列,而不是惰性列;使用自定义惰性可组合项创建您自己的惰性列,并手动处理可组合项的堆大小,以便最终字段不会失去组合。

就这样,你痊愈了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 LazyColumn 中使用屏幕底部的 TextField 的相关文章

随机推荐

  • Python json.loads 失败,并显示“ValueError:无效控制字符:第 1 行第 33 列(字符 33)”

    我有一个像这样的字符串 s u desc u73cd u54c1 u7f51 u5168 u7403 u6f6e u6d41 u5962 u54c1 u7f51 u7edc u96f6 u552e u5546 br r nhttp www
  • 为什么 make 抱怨循环依赖?

    我已经为我的项目构建了一个 make 文件 它可以工作 一切都可以编译 但它给出了这些令人恼火的错误消息 make Circular zpr c lt zpr o dependency dropped gcc Wall c o zpr o
  • 以编程方式更改 ms access 中链接表的连接

    我已经参考了其他页面来解决我的问题 但我仍然无法让它工作 鉴于我有下面的三个例子 我感觉有点慢 但仍然无法弄清楚 以编程方式更改链接表位置 链接表MS Access 2010更改连接字符串 更新 Access 链接表以使用 UNC 路径 这
  • 在 ggplot 中显示一个矩形,其中 x 轴采用日期格式

    如何在 ggplot 中以日期格式显示 x 轴的矩形 我知道这段代码 geom rect xmin 0 xmax 1 ymin 0 ymax 1 fill blue 但是如果 x 轴是日期格式怎么办 语法是什么xmin and xmax 就
  • Python 克隆 git 存储库的方法

    有没有一种不使用子进程的Python方法来克隆git存储库 我准备使用您推荐的任何类型的模块 Using GitPython会给你一个很好的 Git 的 python 接口 要克隆新存储库 您可以使用克隆源功能 from git impor
  • 在ggplot2中标记特定点

    我正在尝试在 ggplot2 中的特定散点图中标记各个兴趣点 我的数据以包含多列的 csv 文件形式存在 Gene chr start stop A B C D E APOBEC3G chr22 39472992 39483773 97 0
  • 尽管安装了 gem,但仍找不到 gem

    我已经构建了我的第一个 gem 但我似乎无法正确安装它 我可以发出命令 sudo gem install ceilingfish toto 产生输出 Successfully installed ceilingfish toto 0 3 6
  • 当Python对象被删除时,Ctypes结构和指针是否自动释放内存?

    使用 Python CType 时 存在允许您在 Python 端克隆 C 结构的结构 以及从内存地址值创建复杂 Python 对象并可用于通过引用来回传递对象的 POINTERS 对象 C代码 我在文档或其他地方找不到的是 当包含从 C
  • IE8 浏览器不支持 IndexOf

    我的应用程序中有级联下拉菜单 使用 jquery 级联 现在我的问题是它可以与 IE9 Firefox Opera 和 Safari 顺利工作 但不能与 IE7 IE8 等任何浏览器一起工作 我浏览了这个问题 发现错误是由于我的jquery
  • Firebase 存储覆盖文件

    我的程序中有一个小错误 我的应用程序中有 firebase 存储 我想让用户将图像上传到存储 问题是当用户上传图像然后尝试上传另一张图像时 该程序会覆盖之前上传的图像 我想要的是当用户想要上传另一张图像时避免 覆盖 并将两个图像保存在不同的
  • 从 NSArray 获取字符串值

    我有一个NSArrayController当我得到selectedObjects并创建一个 NSString 其值为valueForKey Name 它返回 This is still a work in progress 我想要的只是其中
  • 如何在不重新组合的情况下获得精确的尺寸?

    我需要可组合项的大小来绘制动态线条 但我不想通过以下方式获取大小 var size by remember mutableStateOf IntSize Zero Modifier onSizeChanged size it or Modi
  • Android锁屏API?

    我见过两个可以自定义锁屏的应用程序 Widget locker slidescreen 我们真的有一个 API 可以让我们自定义锁屏吗 如果不是的话 有什么技巧呢 请参阅 mylockforandroid 安卓版的我的锁 它是 GPL 的
  • 将文件分块发送到 HttpHandler

    我正在尝试将文件分块发送到 HttpHandler 但是当我在 HttpContext 中收到请求时 inputStream 为空 所以 a 发送时我不确定我的 HttpWebRequest 是否有效 b 在接收时我不确定如何检索 Http
  • 当前目录中包含多个 jar 文件的 javac 类路径选项导致错误

    环境 Windows 7 Java 6 尝试使用 cp 选项编译 java 文件 该文件使用当前目录中的单个 jar 文件以及当前目录中的一些其他 jar 文件 javac cp jar MyFile java 不起作用 javac cp
  • 未经授权的请求后抑制 NTLM 对话框

    在最近的一个共享点项目中 我实现了一个身份验证 Web 部件 它应该取代 NTLM 身份验证对话框 只要用户提供有效的凭据 它就可以正常工作 每当用户提供无效凭据时 Internet Explorer 中就会弹出 NTLM 对话框 我的 J
  • 获取文件的创建日期/时间

    这似乎是一个非常简单的问题 但我无法在网上找到明确的答案 如何通过 Java 的文件管理器获取文件创建的日期 时间 除了文件名之外 我还能获得有关文件 属性 的哪些信息 我不确定如何使用 Java 6 及更低版本获得它 使用 Java 7
  • 零除错误 (Python)

    我收到一些图像的零除错误 尽管其中很多都工作得很好 这是代码 image skimage io imread test png False image gray skimage io imread test png True blurred
  • 为什么模板只能在头文件中实现?

    引用自C 标准库 教程和手册 目前使用模板的唯一可移植方法是通过使用内联函数在头文件中实现它们 为什么是这样 澄清 头文件不是only便携式解决方案 但它们是最方便的便携式解决方案 警告 它是not有必要将实现放入头文件中 请参阅本答案末尾
  • 无法在 LazyColumn 中使用屏幕底部的 TextField

    我有这个代码 setContent val items mutableListOf