How do I tell if my textview has been ellipsized?

前端 未结 14 1664
天涯浪人
天涯浪人 2020-11-30 19:31

I have a multi-line TextView that has android:ellipsize=\"end\" set. I would like to know, however, if the string I place in there is actually too

14条回答
  •  佛祖请我去吃肉
    2020-11-30 19:49

    You can get the layout of the TextView and check the ellipsis count per line. For an end ellipsis, it is sufficient to check the last line, like this:

    Layout l = textview.getLayout();
    if (l != null) {
        int lines = l.getLineCount();
        if (lines > 0)
            if (l.getEllipsisCount(lines-1) > 0)
                Log.d(TAG, "Text is ellipsized");
    }
    

    This only works after the layout phase, otherwise the returned layout will be null, so call this at an appropriate place in your code.

提交回复
热议问题