首页 > 解决方案 > 处理长字符串和 TextView 行为

问题描述

我正在开发一个从服务器获取对象并将它们显示在一个简单列表中的 android 应用程序。

我试图弄清楚如何处理长对象的标题:每个标题都填充一个指定的多行 TextView。如果标题超过 16 个字符,它会与我想要的 UI 混淆。

我需要解决两种情况-

1)。如果标题超过 16 个字符并且包含多个单词,我需要将单词分成不同的行(我尝试了.split("")and .trim(),但我不想使用另一个视图,只需在同一个视图中换行,并且在我看来使用 in("")似乎不可靠)。

2)。如果标题超过16个字符且只包含一个长词,我只需要专门更改字体大小即可。

对于一个好的和可靠的解决方案有什么想法吗?

提前非常感谢。

标签: javaandroidstringandroid-layouttextview

解决方案


用于SpannableString单个视图

对于标题:

 SpannableString titleSpan = new SpannableString("title String");
 titleSpan.setSpan(new RelativeSizeSpan(1.3f), 0, titleSpan.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

留言

SpannableString messageSpan = new SpannableString("Message String");
messageSpan.setSpan(new RelativeSizeSpan(1.0f), 0, messageSpan.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

在 TextView 中设置

 tvTermsPolicyHeading.setText(TextUtils.concat(titleSpan, messageSpan));

推荐阅读