StaticLayout问题,可以设置最大行数并在最后一行显示省略号吗?

时间:2019-05-16 04:40:54

标签: android android-layout staticlayout

我正在考虑在自定义StaticLayout中使用TextView。我要换行的文本的长度是可变的,具体取决于先前输入到应用程序中的数据。假设输入内容是大文本,我想限制在一个高度(这也取决于数据输入),并在最后一行显示省略号。

当文本不适合视图时,StaticLayout没有最大行数的概念,关于如何实现此目的有何建议?

代码:

            // How to calculate 'limitLines' in a variable text?
            StaticLayout.Builder builder = StaticLayout.Builder.obtain(
                    text, 0, text.length(), textPaint, innerWidth)
                    .setAlignment(alignment)
                    .setLineSpacing(0.0f, lineSpacing)
                    .setBreakStrategy(Layout.BREAK_STRATEGY_SIMPLE)
                    .setMaxLines(limitLines ? maxLines : Integer.MAX_VALUE);
            if (limitLines) {
                builder.setEllipsize(TextUtils.TruncateAt.END)
                        .setEllipsizedWidth(ellipsizedWidth);
            }

0 个答案:

没有答案