当内容覆盖文本视图中的多行时,有时图像跨度不可见

Posted

技术标签:

【中文标题】当内容覆盖文本视图中的多行时,有时图像跨度不可见【英文标题】:Sometimes image spans are not visible when content covers multiple lines in textview 【发布时间】:2014-10-03 09:55:00 【问题描述】:

我有一个文本视图,我正在尝试绘制图像跨度以及其中的一些文本。

有时当内容换行到下一行时,有些图像是不可见的。

在向文本视图添加跨度时我应该记住什么?

我应该提供的任何其他细节,我可以在这里粘贴我的代码。

【问题讨论】:

如何添加 ImageSpan? 我正在使用 StringBuilder 对象并为我要添加的每个跨度添加一个“”(空格)。然后使用 - builder.setSpan(is, end, end + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); 设置跨度其中 is 是一个 ImageSpan ,end 指向要替换的空间。 所以,有一个开发我用 ':' 替换了 ' ' 并且一切正常。所以,唯一的问题是在这种情况下使用 ' ' 或 ':' 有什么区别。 @VinayakBhavnani 我遇到了同样的问题,使用 ':' 而不是空格!这很奇怪。 @WindsurferOak ,是的,这很奇怪。而且我没有遇到':'的任何问题,所以我没有尝试深入研究它。如果你找到一个,请发布一个解释。欢呼 【参考方案1】:

所以,有一个发展,我用 ':' 替换了 '',一切正常。所以,唯一的问题是在这种情况下使用 ' ' 或 ':' 有什么区别。

【讨论】:

我的猜测是,android 在行尾以不同的方式处理空白(可能不会打扰排版/渲染它),并且没有考虑用图像跨度替换它的事实,尽管它可能应该。感谢您的回答(顺便说一句,您应该将此标记为已接受的答案)它确实帮助我解决了同样的问题! 即使它最终没有视觉上的差异,但是如果您担心“:”可能会通过您的跨越代码中的一些怪异错误显示出来,添加非中断空格也可以,只需添加“ \u00A0" 到您的 SpannableStringBuilder。

以上是关于当内容覆盖文本视图中的多行时,有时图像跨度不可见的主要内容,如果未能解决你的问题,请参考以下文章

ColumnSpan在Xamarin表单中的奇怪行为

根据里面的多行文本视图动态设置 ListView 高度

当tableview单元格变得不可见时如何获取UITextField(UITableViewCell的子视图)文本值

如何覆盖 ArrayAdapter add 方法来添加图像和文本视图?我有自定义数组适配器类

当 viewController 的视图变得可见时,视图的框架设置不正确

当作为子视图添加到集合视图单元格时,滚动视图中的内容不可见