您的位置:首页 > 移动开发 > Android开发

Edittext在xml文件中设置android:focusable=“false”之后,edittext再次获得焦点。

2015-01-26 20:58 459 查看
在xml文件中,edittext这个控件设置了,android:focusable=“false”,

在代码中edittext.setfocusable(true),edittext这个控件仍然无法点击,百度之后,得到的结果是:

一定要按一下这个顺序写,重新使edittext获取焦点:

                         edittext.setFocusable(true);
 edittext.setFocusableInTouchMode(true);
 edittext.requestFocus();
 edittext.requestFocusFromTouch();

这是为什么呢?

查阅API:

setFocusable(boolean):

Set whether this view can receive the focus. Setting this to false will also ensure that this view is not focusable in touch mode.

//--设置edittext是否可以获得焦点

setFocusableInTouchMode(boolean):

Set whether this view can receive focus while in touch mode. Setting this to true will also ensure that this view is focusable.

//--设置edittext在touch模式下是否可以获得焦点

requestFocus():

Call this to try to give focus to a specific view or to one of its descendants. A view will not actually take focus if it is not focusable (
isFocusable()
returns false), or if it is focusable and it is not focusable
in touch mode (
isFocusableInTouchMode()
) while the device is in touch mode. 

//--调用这个给指定的view或者它的子view焦点。如果这个view在isFocusable()方法下返回false,或者isFocusableInTouchMode()方法下返回false,这个view不会真正获得焦点

requestFocusFromTouch():

Call this to try to give focus to a specific view or to one of its descendants. This is a special variant of
requestFocus()
that will allow views that are not focuable in touch mode to request focus when they are touched.

//--调用这个给指定的view或者它的子view焦点。这个特别的变异于(?)requestFocus()的方法会让在这个view被touch时,给view焦点。

以上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息