需求:输入框,通过不同状态来判断此输入框是否可编辑,并且在不可编辑状态下能实现长按选择复制功能
解决方案:通过setFocusableInTouchMode()方法即可实现输入框是否能编辑,但是当setFocusableInTouchMode(false)时,并不能实现长按选择复制的功能,所以舍弃,改用setKeyListener(null) + setTextIsSelectable(true) 实现这一功能。
设置KeyListener为null, 变为不可输入状态;setTextIsSelectable(true) 设置文字可选
另外,在设置了setTextIsSelectable(true)又为该输入框设置了点击事件,那么会出现需要点击两次才行的情况,解决方案:https://blog.csdn.net/sange77/article/details/90899495
出现问题:
在xml中对textIsSelectable进行统一的设置,在android8.0以下的系统会出现:当输入框为可编辑状态下也无法编辑。如果是在代码中设置的话则不会出现这一情况,所以,在android8.0之前通过XML设置组件属性与通过方法设置属性是否会有差别?