问题标签 [spannablestring]

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.

0 投票
2 回答
1160 浏览

android - 有什么方法可以为 SpannableString 设置文本阴影?

我有一个 Android 主屏幕小部件,上面有一个TextView.. 不幸的是,我在设计它时遇到了一些问题..

我想对文本应用动态(从代码更改)阴影,但我不确定如何执行此操作。我可以在布局中设置阴影,但是如果我想在代码中更改它,则无法通过RemoteView!

我以为我可以用 a 来做到这一点SpannableString,但我找不到任何有用的东西。如果我在其中使用 a TextAppearanceSpan,它将忽略样式中的阴影属性。此外,当我开始在 aSpannableString上使用 a 时,TextView它开始忽略我应用于TextView:(

那有什么问题,我最好的做法是什么?

0 投票
1 回答
1861 浏览

android - 获取 Spannable 对象中的换行偏移

我有一个Spannable像这样格式化的对象:

这是第一行。

这是第二行。这比第一个更有趣。

为什么不呢,让我们添加第三行。

当我把它扔进 aTextView时,它会按预期显示换行符。我想知道的是,如何从Spannable对象中获取换行符的索引?我查看了所有应用的 Span,我看到的都是RelativeSizeSpans 和StyleSpans。谢谢。

0 投票
1 回答
7758 浏览

android - 如何在 TextView 中的每个单词上使用 onTouchListeners?

我想将 onTouchListeners 分配给 TextView 中的每个单词。(不链接到互联网上的东西,而只是为了继续应用程序内的游戏逻辑)。此时我的游戏的一般动作是查看一个 TextView,触摸一个单词,如果它是您赢得的目标单词,否则根据您触摸的单词加载另一个 TextView 并重复。我现在实现这一点的方法是为每个单词使用 ClickableSpans 和 onClicks。

但我宁愿有 onTouchListeners,这样我就可以在 touch_down 上更改单词背景的颜色,并在 touch_up 上执行游戏逻辑,使其看起来更具响应性。我怎样才能做到这一点?

0 投票
1 回答
1756 浏览

android - 带有 Linkify.PHONE_NUMBERS 的 TextView 使电话号码不可见

我正在用文本和电话号码填充 TextView,如下所示:

这在我的模拟器中看起来很好。现在,我想链接电话号码,所以我做了以下事情:

这使电话号码消失,我看到:

它基本上显示电话号码,但它是不可见的。如果我触摸(不可见)电话号码所在的空间,那么 Android 会加载拨号器并拨打 1234567890。这并不是电话号码是白底白字——我已将背景更改为红色,但它不会显示为白色红色——它是不可见的。

有什么线索吗?谢谢。

0 投票
1 回答
790 浏览

java - Android 开发:将 setText 与 SpannableString 一起使用,并且 Span 很慢,解决方法?

我为我的应用程序制作了一个小语法荧光笔。

它执行正则表达式并将 ForegroundColorSpans 应用于 EditText 的 contect 的副本 - 全部在一个线程中。完成所有这些后,将调用 setText() 方法并将 EditText 的上下文替换为现在样式的副本。

问题是,setText() 方法会导致 UI 冻结。在我使用 2,000 行文件进行的测试中,应用样式文本需要 30 秒!

除了建议用户不要对大文件使用语法高亮并在他们打开大文件时自动将其关闭之外,我还能做些什么来加快语法高亮?除了减少和提高正则表达式的效率。

谢谢,亚历克斯。

0 投票
2 回答
19477 浏览

android - Android 开发:如何用 Spannable 替换 EditText 的一部分

我正在尝试用跨度替换Editable返回的一部分。getText()

我已经尝试过getText().replace(),但这仅适用于CharSequences.

我尝试这样做的原因是我可以一个EditText接一个地突出显示一个部分(经过一小段延迟),而不是遍历并突出显示整个部分EditText(大文件可能会很慢)。

有没有人知道我将如何做这件事?

0 投票
4 回答
22387 浏览

android - Android Linkify 文本 - 单一文本视图中的可扩展文本 - 就像 Twitter 推文一样

我有一个 textView 和类似的文本

“这是带有关键字和浏览链接的简单文本”

在上面的文字中我想做..

单击链接以打开该 URL单击该关键字在我的应用程序中打开一个新活动

此外, 整个 TextView 甚至还有一个单击事件。

请帮我找到解决方案。谢谢你,MKJParekh

0 投票
1 回答
1211 浏览

android - ListView 中的 SpannableString 正则表达式

我有一个使用自定义适配器将字符串集合绑定到的 ListView。我还强调了文本中的某些关键字。我正在使用 SpannableString 和正则表达式在单词下划线,但我想知道这是否是最有效的方法?我注意到 java.util.regex.Matcher 和 regex.util.regex.Pattern 类的分配跟踪器中有很多分配,这可能会导致我的应用程序出现内存泄漏。我知道正则表达式可能很昂贵,但我不确定另一种方法来做我需要做的事情。

0 投票
4 回答
29024 浏览

android - SpannableString:是否可以应用两个或多个RelativeSizeSpans?

我正在尝试构建一个 SpannableString ,使其看起来像这样:

在此处输入图像描述

两个字符 (m, s) 应小于其余字符。我试图将所有文本保存在一个 SpannableString 中,并且我还尝试通过 SpannableStringBuilder 连接两个 SpannableStrings。一个 Spannable 的代码如下所示:

但是,仅应用了一种格式 - 使用 SpannableStringBuilder 时,只有“m”更小,而当对整个文本使用一个 SpannableString 时,只有“s”更小。

调试还显示 Spannables 似乎只拥有一个 RelativeSizeSpan 实例,这意味着一种类型只能有一个 Span。这是真实的还是预期的行为?是否建议改为连接 TextViews?

编辑:顺便说一句,出于性能原因(许多 GC 调用),我试图在此处删除 HTML.fromHtml() 调用。

0 投票
2 回答
3289 浏览

android - 为什么 ListView.getChildCount()==0 (总是)?

我想在活动创建时将 SpannableString 设置为 ListView 的某些项目。
我这样写:

但我发现 doListlist.getChildCount() 总是 = 0。
问题出在哪里?或者任何其他更好的方法来做到这一点?