Android - 如何让 AutoCompleteTextView 失去焦点

5

我有一个相当复杂的布局,其中包含多种视图类型,并且有一个AutoCompleteTextView保持焦点。我有一些相对布局,我将它们设置为GONE,然后当我展开它们时,屏幕会回到autoCompleteTextView位置,这在你在视图下方时很烦人。如何使AutocompleteTextView不保持焦点,而又不设置为不能获取焦点,因为这样做会导致无法单击它写入内容。我尝试将其设置为不获取焦点,并添加一个单击侦听器,基本上说如果不是焦点,则获取焦点,但这没有起作用。我希望能够让活动以AutoCompleteTextView没有焦点开始,然后当某人单击它时,可以在其中编写内容,并在完成后失去焦点。任何关于此问题的帮助都将不胜感激。

1个回答

4

将这个代码放在其父布局(例如LinearLayout)上:

android:focusable="true" android:focusableInTouchMode="true"

这样,当用户进入您的活动时,LinearLayout 将获得焦点,键盘不会显示。


这对于活动的开始是有效的,但是用户完成输入后,如何使自动完成文本视图的焦点消失呢? - James andresakis
你可以从另一个组件请求requestFocus(),但困难在于,你如何知道用户何时完成输入? - Pozzo Apps
我想我可以在主视图中的任何其他对象的onclick事件中调用requestFocus()。我会试一试看会发生什么。 - James andresakis
通常情况下,当您点击按钮时,它应该自动失去焦点,因为在单击后按钮将“立即”获得焦点... 如果不是这种行为方式,也许我误解了问题。 - Pozzo Apps

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接