所以,EditText
中有一个ScrollView
。因为这个EditText可以使用很长时间,所以我们决定一次只显示6行,对其余行进行椭圆化处理,然后显示模态警告对话框以查看/编辑完整的EditText。
然而,这提出了两个我似乎无法解决的问题。有些时候我们需要禁用这个EditText - (在屏幕打开后已经完成)。
但是,据我所知,如果禁用EditText,则其OnClickListener
不会收到事件。所以我的解决方案是编写这个扩展方法:
fun EditText.disableButRemainClickable(softDisabled: Boolean) {
if (softDisabled) {
alpha = 0.5f
isFocusable = false
isFocusableInTouchMode = false
isLongClickable = false
isCursorVisible = false
} else {
alpha = 1f
isFocusable = true
isFocusableInTouchMode = true
isLongClickable = true
isCursorVisible = true
}
}
这解决了这个问题。但是,我现在有了一个新问题。 ellipsize属性不适用于已启用的editText。我该怎么办?
答案 0 :(得分:0)
Maybe, you can extend the EditText
class and create your own CustomEditText
class to maintain a state whether it is enabled or disabled.
Whenever you get the callback for onClick
, you disable it and show the Dialog.
I think this might solve your problem.