问题标签 [spannablestringbuilder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - SpannableStringBuilder.insert() 如果目标中已经存在该类型的跨度,则不会插入跨度
我有 2 个 SpannableStringBuilder,sbDest 和 sbSrc。
我想将 sbSrc 插入 sbDest:
sbDest.insert(0, sbSrc)
这行得通 - sbDest 以它在插入之前的跨度加上 sbSrc 中存在的跨度结束。
但是,如果 sbSrc 包含 sbDest 中已经存在的类型的跨度,则不会插入该跨度。
原因似乎是 SpannableStringBuilder.java 中此注释下的代码:
// 仅当此对象尚未用作此字符串中的跨度时才添加跨度
任何人都知道为什么会出现这种行为,以及是否有解决方法?
谢谢
android - SpannableStringBuilder 在某些设备中不起作用
SpannableStringBuilder 装饰在某些设备中不起作用。我在 java 代码中使用 SpannableStringBuilder 设置字体、字体颜色并在 textview 中设置。
android - SpannableStringBuilder 不在文本视图中显示文本
我正在尝试在 RecyclerView 内的文本视图中单独单击一组字符串(每个标签将传递不同的数据,这些数据是在加载时从 api 获取的)。我在方法中使用SpannableStringBuilder
如下bindView
方法创建了字符串。
然后我将它设置为文本视图。
如果我是andprintln()
的内容,我可以看到它包含一串标签,所以它似乎正在工作。但是,在应用程序中进行测试时,它不会出现在文本视图中。spans
view.headerTags.text
如果我设置view.headerTags.text = "Tags should appear here"
,它可以工作,所以我不确定文本视图是否有问题。
看不出为什么它不会出现,特别是如果控制台正在打印出文本视图的内容?谁能让我知道我在这里可能缺少什么?
android - 如何使用文本跨度将 android textview 中的单词移动到下一个单词上方?
我正在尝试将一个单词移动到 android textview 中的下一个单词上方,就像附加的图片(示例图片)一样。我已经设法使用 spannablestringbuilder 将单词向上移动(如上标),但我找不到将文本的右侧部分向左移动以填补空白的方法。有谁知道如何做到这一点?
这是我到目前为止编写的函数:
java - 使用 getSpans 方法获取 spannable 中的所有跨度
我使用以下代码获取可跨字符串中的所有跨度。
当我想将 objSpan 强制转换为 Spanned 时(在第 6 行),我遇到了以下 ClassCastException。
java.lang.ClassCastException: android.text.style.SpellCheckSpan 不能转换为 android.text.Spanned
我怎么解决这个问题?有没有更好的方法来获取可跨字符串中的所有跨度?
android - Android:如何在 Html.fromHtml() 中显示“大于号”,它被理解为开始标记而不是大于号
我对 Html.fromHtml 有疑问,它将“<”解释为开始标记,而不是“大于”符号。
有没有办法逃脱“<”符号以便显示?
前任 :
给测试:10
给出测试:>10
但
给出测试:
android - 如何使用图像添加自定义的可跨字符串以获得此效果
我正在尝试获得这种效果。
我有一个文本视图,在我需要的地方我需要添加带有图像和边框的跨度。
有了这个如何在TextView中围绕部分文本设置矩形虚线/虚线轮廓?,我能够绘制虚线边框,但是当有边框的文本转到下一行时它失败了(它在单行中工作)。
我正在尝试按照图片获得确切的效果。通过https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/text/style/中的默认支持跨度
但无法获得哪一个可以我如何定制。
对此有任何建议。
android - 如何使用 SpannableStringBuilder 缩放多个跨度?
我有这个工作但多余的代码:
我将如何重构它,以便只有一次调用.scale()
?
当我尝试这个时,只有第一个字符串被缩放:
我无法弄清楚将 lambda 参数中的所有内容包含到scale()
.
android - 通过将 Spans 设置为 EditText,有效地即时应用文本格式
我正在使用一个 EditText 控件,我允许使用(粗体、斜体等)的文本格式。
要应用格式,在我的 TextWatcher 的 AfterTextChanged 事件处理程序中,我检测是否已通过 UI 切换了格式样式(例如粗体)。如果是这样,我尝试了两种不同的方法,但由于不同的原因,这两种方法都不令人满意:
方法一
对于起始值,我尝试使用_textView.SelectionStart - 1或首次应用 StyleSpan 时的起始位置。而对于最终值_textView.SelectionStart。
尽管使用此方法文本的格式看起来很好,但当只有一个就足够时,它会创建不必要的 StyleSpan。当我尝试通过 Html 转换将文本保存到本地数据库时,这一点很清楚:
例如,<b>this is bold text</b>
我得到的是 ,而不是<b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b>this is bold text</b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b>
。所以,很明显,我在这种方法中做错了/效率低下。显然,这导致在输入文本和启动时检索时最终都会变慢。
我考虑过的是检查前一个_textView.SelectionStart - 1
字符_textView.SelectionStart
(检查/删除/添加必要的跨度。但这似乎是另一种处理此问题的低效方法。
方法二
因此,这不会导致与上述相同的低效率,但是由于该SpanTypes.ExclusiveInclusive
标志,当我通过 UI 将其关闭时,我无法停止样式格式化以结束。换句话说,当我打开粗体样式时,后面的所有文本都将被格式化为粗体样式,即使我已经关闭了它的切换。
在这两者中,在我看来,这似乎是正确的一般方法,所以我想知道我是否可以做任何事情来阻止在我关闭其切换时立即应用该样式。还是有另一种我完全错过的方法作为处理此类要求的最佳实践。
android - Android - Spannable: Unable to set multiple spans at once
I have the following code to set a color span on multiple subStrings of the same string.
I provide the following arguments:
But everything after "my full length of the string"
gets colored.
Could someone please help figure out what is wrong with the above method?
thanks