ListView + EditText => 糟糕的键盘行为
Posted
技术标签:
【中文标题】ListView + EditText => 糟糕的键盘行为【英文标题】:ListView + EditText => bad keyboard behavior 【发布时间】:2015-01-19 14:31:13 【问题描述】:我在项目中使用带有一些 EditTexts 的 ListView,并且在屏幕底部(在列表视图上方)有一个浮动操作底部 (fab)。
当我选择一个 EditView 并且键盘出现在它上面时我想要什么:
滚动 ListView 以显示 EditView。 晶圆厂停留在屏幕底部。 仅此而已。我得到了什么:
列表视图未滚动到项目,键盘未针对触摸的 EditText,它不针对任何目标(键盘以良好的输入模式打开,然后重置)。 晶圆厂与键盘对齐移动,而不是被覆盖。我尝试了android:windowSoftInputMode="adjustNothing"
选项,然后 fab 按预期停留在底部,但 listView 不会滚动到 editText。键盘的目标是好的 EditText。除了我需要重新实现对项目的滚动之外,这几乎是好的。
我尝试了选项android:windowSoftInputMode="adjustPan"
,然后整个屏幕向上移动,这不是预期的行为。
实际上是否有解决方案,或者我应该坚持“不是很好,但至少是功能性”的adjustPan?
【问题讨论】:
你能添加一些屏幕吗? 由于回收利用,不建议在列表中使用可编辑视图。 Google 建议为每一行设置不可变的列表和编辑活动 【参考方案1】:ListView 不适用于可编辑视图,因为内部视图会被重绘一次或多次,从而导致多个焦点事件。
这发生在 10 年,因此我预计不会很快修复。我解决了这个问题。
Buggy ListView makes me sad
【讨论】:
技术上。这就是重新设计 Android 5.0 中引入的RecyclerView
的原因。
RecyclerView 也有同样的问题
...哦。嗯,这是有问题的。以上是关于ListView + EditText => 糟糕的键盘行为的主要内容,如果未能解决你的问题,请参考以下文章
在android中的EditText上输入时如何过滤ListView数据