Repository: incubator-weex Updated Branches: refs/heads/0.16-dev caf530ca8 -> 0df7f61b0
* [android] Fix the problem of 'text-overflow:clip' will delete the second last word. Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/7a1769fc Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/7a1769fc Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/7a1769fc Branch: refs/heads/0.16-dev Commit: 7a1769fca7cb6cb57a7a0c828ebfd9ed94f17876 Parents: e52d273 Author: YorkShen <shenyua...@gmail.com> Authored: Wed Sep 20 16:24:18 2017 +0800 Committer: YorkShen <shenyua...@gmail.com> Committed: Wed Sep 20 16:24:18 2017 +0800 ---------------------------------------------------------------------- .../main/java/com/taobao/weex/dom/WXTextDomObject.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7a1769fc/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java index 06084a9..8adb991 100644 --- a/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java +++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java @@ -337,12 +337,19 @@ public class WXTextDomObject extends WXDomObject { int desired, @Nullable TextUtils.TruncateAt truncateAt) { Spanned ret = new SpannedString(""); if (!TextUtils.isEmpty(source) && source.length() > 0) { - StaticLayout layout; if (truncateAt != null) { source.append(ELLIPSIS); } + + StaticLayout layout; + int startOffset; + while (source.length() > 1) { - source.delete(source.length() - 2, source.length() - 1); + startOffset = source.length() -1; + if (truncateAt != null) { + startOffset -= 1; + } + source.delete(startOffset, startOffset+1); layout = new StaticLayout(source, paint, desired, Layout.Alignment.ALIGN_NORMAL, 1, 0, true); if (layout.getLineCount() <= 1) { ret = source;