我有一个横向ScrollView
,最左边有EditText
个,中间有一些其他东西,而在最右边我有一个Button
。单击此按钮时,将显示一个对话框。该对话框包含EditText
。因此,当我打开此对话框时,内部的edittext获得焦点并显示键盘。没关系。但是不好的是滚动视图滚动到edittext并且编辑文本获得焦点。
因此,在单击按钮之前,scroolview一直向右滚动,焦点位于包含scrollview的根RelativeLayout
。这意味着没有edittext有焦点。但是当我在对话框的edittext中输入文本并按OK时,对话框将关闭,现在滚动视图一直向后滚动,并且编辑文本被聚焦。
如何防止这种情况发生。我希望在对话框关闭后焦点保持在RelativeLayout
。我在RelativeLayout
上设置了它,但它是一样的:
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
答案 0 :(得分:0)
只是一个疯狂的猜测:您可以使用android:nextFocusXXX
属性控制哪个元素获得焦点。特别是attributes:nextFocusForward
看起来很有希望。
编辑:正如你的评论所说,焦点必须在Dialog被驳回后转移。您可以为要获得焦点的EditText添加对view.requestFocus()
的调用。在DialogInterface.OnDismissListener
。