所以我的 ListView 上方有一些元素(包括 EditText)。EditText 本质上是一个自定义搜索字段,我实现了它以向 ListView 的过滤添加一些额外的功能。EditText 不能是 ListView 的标题,因为我不希望它在您浏览列表时滚动到屏幕外。
一切都很好,除了在较小的设备上。当您在 EditText 中输入文本时,屏幕不会滚动,因此您无法在 ListView 中看到实时过滤。
通常你会将布局文件中的父项设置为 ScrollView 并将活动的 windowSoftInputMode 定义为 adjustResize,但这不是一个选项,因为我在布局中有这个 ListView 并且在布局中有一个 ListView 是一种罪过滚动视图。
理想情况下,我正在寻找一种方法来实现以下目标: - 在 EditText 获得焦点后,我希望它滚动到页面顶部,并且列表视图占据屏幕的其余部分。- 在 EditText 失去焦点后,我希望屏幕恢复到默认状态。
到目前为止,我想出的唯一真正的方法是手动检测键盘出现然后隐藏屏幕顶部,然后在检测到键盘消失时我会再次显示它。
任何人都可以提出更好的建议,而不是这样的黑客?