EditText ellipsize (three dots…)

不打扰是莪最后的温柔 提交于 2019-12-01 03:52:19

Set this property to edit text. Elipsize is working with disable edit text

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

You have to remove android:inputType attribute.

Ellipsize doesn't work if inputType is defined.

Might not be possible in EditText (unless you create your own View). I think the default behavior (for singleLine EditText) is that you can scroll the text sideways when it can't fit in the view.

facebook-1611499009122728

You need write a new class that extends EditText. for example:

MyEditTextEllipsize extends EditText{

private String dotsString;

private String storeString;

public MyEditTextEllipsize(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

@Override
    protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
        super.onFocusChanged(focused, direction, previouslyFocusedRect);

         if(focused)

     {
       setText(storeString);
      }else {
             String NOW = getText().toString();
                storeString = NOW;
            if (NOW != null && getWidth() <= getTextSize() * NOW.length()) {

                    dotsString = NOW.substring(0, (int) (getWidth() / getTextSize())) + "...";

                    setText(dotsString);

                }
}

    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!