美文网首页
EditText的焦点

EditText的焦点

作者: Frank_Kivi | 来源:发表于2018-09-17 15:16 被阅读15次

    在处理EditText是否可以输入的时候,我们通常会想到使用Focus来控制,但是仅使用android.view.View#setFocusable(int)却不一定能满足我们需求。当我们想要重新可以输入,设置setFocusable(true)不起作用。
    正确的使用方法是:

       public void enable(View view) {
            editText.setFocusableInTouchMode(true);
        }
    
        public void disable(View view) {
            editText.setFocusable(false);
        }
    
     public void setFocusableInTouchMode(boolean focusableInTouchMode) {
            // Focusable in touch mode should always be set before the focusable flag
            // otherwise, setting the focusable flag will trigger a focusableViewAvailable()
            // which, in touch mode, will not successfully request focus on this view
            // because the focusable in touch mode flag is not set
        
    
          //这段话是重点,意思就是说这个方法应该在设置focusable flag之前调用。
    
    
            setFlags(focusableInTouchMode ? FOCUSABLE_IN_TOUCH_MODE : 0, FOCUSABLE_IN_TOUCH_MODE);
    
            // Clear FOCUSABLE_AUTO if set.
            if (focusableInTouchMode) {
                // Clears FOCUSABLE_AUTO if set.
                setFlags(FOCUSABLE, FOCUSABLE_MASK);
            }
        }
    

    相关文章

      网友评论

          本文标题:EditText的焦点

          本文链接:https://www.haomeiwen.com/subject/zkwlnftx.html