【问题标题】:EditText cannot get focus back after set Focusable to false将 Focusable 设置为 false 后 EditText 无法重新获得焦点
【发布时间】:2021-11-09 19:06:09
【问题描述】:

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

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

【问题讨论】:

    标签: java android-edittext


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-08-11
        • 2011-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-27
        • 1970-01-01
        • 1970-01-01
        • 2013-12-28
        相关资源
        最近更新 更多