EditText椭圆化长文本,然后在单击/触摸时使视图可编辑

时间:2018-05-06 10:50:22

标签: java android android-edittext ellipsize

我有EditText我需要进行椭圆化,并确保如果文字太长,第一个字符是可见的。但是在点击/触摸事件中它应该是可编辑的,光标应该在该行的末尾。

在搜索互联网后,似乎android:ellipsize="end"EditText的可编辑模式不兼容。实际上,如果我设置edittext.setKeyListener(null) ellipsize有效,但视图不可编辑,我无法在其上设置任何onClickListener

如果我使用setFocusable(false)而不是禁用KeyListener,我就不会获得椭圆效果。

我目前的代码:

    v.setSelection(0);
    v.setFocusable(false);
    //v.setKeyListener(null);
    v.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            v.setFocusable(true);
            v.setFocusableInTouchMode(true);
            v.setEnabled(true);
            v.setSelection(v.getText().length());
        }
    });

的xml:

android:lines="1"
android:scrollHorizontally="true"
android:ellipsize="end"
android:singleLine="true"

1 个答案:

答案 0 :(得分:0)

你能解决一些其他观点吗?就像TextView的展示ellipsizeonclick展示TextView的{​​{1}}一样,并将光标位置保持在EditText instead of TextView的末尾