禁用android edittext但允许点击,或启用ellipsize edittext

时间:2018-04-18 16:39:51

标签: android android-edittext kotlin anko

所以,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。我该怎么办?

1 个答案:

答案 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.