在ListActivity中编辑文本ListView在键盘出现时失去焦点

Phy*_*eth 25 android listview focus listactivity android-edittext

我搜索并搜索了这个问题的答案,看起来像答案的一切都没有用,所以我想我会问.

我有几个EditText盒子添加到一个ListView,这是一个基础ListActivity.当我设置windowSoftInputModeadjustPan并单击在EditText它的工作原理,直到你再次点击它,然后在键盘盖起来.当我使用adjustResize它时工作除了当键盘出现时EditText失去焦点,我必须再次点击它来键入.

我试图弄清楚如何捕捉,onResize但这似乎与视图而不是活动相关联,我不完全确定如何倾听它.我也在EditText盒子和它ListView自身上尝试了各种可聚焦的设置(正如我读过的其他帖子中所建议的那样)似乎也没有帮助.

Boj*_*man 63

您真正需要做的就是将其应用于ListView:

XML:

android:descendantFocusability="afterDescendants"
Run Code Online (Sandbox Code Playgroud)

Java的:

listView.setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
Run Code Online (Sandbox Code Playgroud)

  • 所以这个解决方案大多有效 问题是,当SIP出现时,始终会选择第一个可聚焦编辑框.如果我试图选择的编辑框不是第一个可聚焦的编辑框,则会出现问题.仍然试图弄清楚如何抓住这一点,这使我处于与我相似的地方.有没有办法将视图的焦点顺序设置为第一,即使它不是布局中的第一个? (7认同)
  • 我不知道为什么所有其他SO答案都推荐`beforeDescendants`.`afterDescendants`是唯一一个对我有用的,并且在文档方面也很有意义. (2认同)