将 Focusable 设置为 false 后,EditText 无法取回焦点

EditText cannot get focus back after set Focusable to false

我将 EditTextFocusable 设置为 false,然后将其设置回 true。但是它无法重新获得焦点。

public void onClick(View v) {
                if (et.isFocusable()){
                    et.setFocusable(false);
                } else {
                    et.setFocusable(true);
                }
            }

当您声明一个组件不可聚焦时,系统会将焦点分配给下一个可聚焦组件作为副作用。使组件再次可聚焦并不能消除副作用,所以你必须让它发生。

确保调用组件的 requestFocus() 方法。

在这种情况下,您应该再次请求焦点:

public void onClick(View v) {
   if (et.isFocusable()){
     et.setFocusable(false);
 }else {
     et.setFocusable(true);
     et.requestFocus();

 }
}