问题标签 [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 回答
8049 浏览

ios - 什么是Objective-C中Android的“Spannable”等价物

我在一个iOS应该能够突出显示文本并使其可点击的应用程序上。

我在 iOS 中阅读了有关NSAttributedString的信息,但它仍然比Android 中的Spannable更复杂。

如果没有,有没有其他Objective c方法可以做到这一点;我应该怎么做NSAttributedString才能逐字突出显示段落,以及如何使我的文本可点击。

更新:

我到底想要什么,每个单词都应该是可点击的,并且可以 在一个段落中突出显示为一个单词。

0 投票
7 回答
4154 浏览

android - ReplacementSpan 的 draw() 方法没有被调用

我像这样在字符串中设置背景:

但我想在这个背景中增加左右填充,所以我创建了自定义跨度

我通过以下方式使用我的跨度:

不幸的是,我的 draw() 方法没有被调用。getSize() 被正确调用。

0 投票
4 回答
4223 浏览

android - SpannableString 第一次改变颜色,但重用时不改变

我正在尝试制作一款游戏来帮助孩子们学习数学。我为代码编号着色,以便他们可以遵循逻辑。我还使用 textView.append() 构建一个长字符串以放入活动中。

因为我在指令中重复使用相同的数字/符号,所以我想要一种轻松回收 SpannableStrings 的方法,但似乎我所做的更改第一次正确应用,但此后有时有效,有时部分有效(例如正确的大小/alignment,但颜色错误),或者根本不工作。我得到了这一切的混合。我似乎在 Stackoverflow 或 Google 的其他任何地方都找不到遇到类似问题的人。

这是我的代码(简化):

(请注意,我没有提供 XX、YY 或 ZZ 的代码……这有点复杂,因为我必须从 sharedpreference 设置中获取数据,但这些问题与其他数学符号基本相同/运营商)。

这是生成的屏幕截图:

在此处输入图像描述

也许我的问题最好的例子是+(加号)。起初,它是预期的黑色,但只有 4 个字符后(包括空格)它是错误的颜色(蓝色,它可能来自之前的 SpannableString),尽管对齐和大小正确。在下一个彩色字符串中,它按预期显示(黑色、居中、大),但之后在随后的“彩色”字符串(小、左对齐、绿色,如段落文本)中根本没有格式化。使用的代码看起来与上面完全相同(即 math1.append(PLUS);),但输出与我预期的不一致。

最后一条信息:在全局声明我的变量之前,我每次都使用相同的 makeBlack() 和 math1.append() 函数在本地声明它们,并且效果很好。在全局设置我的变量后,我只会得到这种奇怪的行为。

关于这里出了什么问题的任何建议?

0 投票
1 回答
3462 浏览

android - SpannableString.setSpan 不工作?

我正在尝试为

str是 的一个实例StringBuilder。如果为真,我希望最后一个字符为miscTextView蓝色isBlue,否则为粉红色,而其余文本保持黑色。
但事实证明,无论哪种情况,最后一个字符都是灰色的,这让我很困惑。我做错了什么?

编辑:我已经检查了颜色资源 xml。Intellij 在 xml 代码行的左侧显示颜色。

0 投票
1 回答
646 浏览

android - 如何在 TexView 上为 SpannableStrings 替换多个字符串?

我正在寻找一种在 TextView 上查找不同字符串并将其替换为样式化 SpannableStrings 的方法。

我在How to use SpannableString with Regex in android中找到了这段代码?对单个字符串执行此操作:

这很好用,但我不确定如何调整它以使用多个字符串。我尝试使用 SpannableStringBuilder.replace 重新实现它,这样我就可以多次运行该方法,同时保持以前的样式但失败了。

有任何想法吗?

谢谢!

0 投票
3 回答
944 浏览

java - 对齐 2 个文本,1 个正常,1 个相反

我用一个按钮制作了一个应用程序,其中总共有 4 个文本,我想对齐前 2 个。一个位于底部文本的最左侧,另一个位于底部文本的右侧。

所以从这里:

前

setText(item.title + " " + item.roomId + "\n" + item.teacher + " " + item.classes);

对此:

之后(这就是我想要的)

setText(declare here a spannable);

我想我应该使用Spannable,我已经尝试了一些东西,Alignment.ALIGN_NORMALAlignment.ALIGN_OPPOSITE我认为应该首先计算底部文本的长度,然后进行对齐。(我在这里找到了一个很好的例子,但它在我的设置中不起作用)。

我希望有人能给我指出一个好的方向。

编辑:

我不能(我认为)使用RelativeLayout或者LinearLayout是我在不同的类(ScheduleItemView.java)中扩展按钮的原因:

我尝试在protected void onLayout( ScheduleItemsLayout.java) 中执行此操作:

但这行不通。我不确定是否应该使用new RelativeLayout(this).

Spannable在这种情况下使用更好吗?

项目的源代码可以在这里下载(可以在 Eclipse 中导入)

0 投票
1 回答
5706 浏览

android - 如何在Android中将样式文本分成页面?

我有一个很长的文本,我想分成多页。我还需要一种方法来设置这个文本的样式。

0 投票
2 回答
1562 浏览

android - BackgroundColorSpan 始终为黄色

由于某种原因,颜色总是黄色。我试过两种绿色:

0xBFFFC60x99FF99

我觉得我在某个地方弄乱了颜色的顺序。

0 投票
2 回答
7195 浏览

android - 将 ImageSpan 对齐到 TextView 的顶部

目前,我希望在文本之间添加一个图像并将其对齐到 TextView 的顶部。

像这样的东西:

在此处输入图像描述

我能找到的唯一垂直对齐方式是基线(似乎将它放在文本中心的正下方)和底部对齐。

如果我使用 ALIGN_BASELINE 会发生什么:

在此处输入图像描述

有没有办法让它与顶部对齐?

我当前的代码:

然后

删除 ImageSpan.ALIGN_BASELINE 将其设置为与底部对齐,这也不是我的预期结果。

--- 谢谢用户 Lalit Poptani,我尝试应用您的答案---- 应用此之后,发生的情况是整个 textview 似乎有额外的边距顶部。

在应用跨度之前:

应用 SuperscriptSpanAdjuster 后

我的代码:

0 投票
1 回答
2175 浏览

android - 如何限制 spannablestring 的行高但保持行的其余部分

我有一个TextView里面有一个SpannableString突出搜索词的。像这样:

在此处输入图像描述

可以看出我正在使用android:lineSpacingExtra给线条一个很好的间距,但是它导致SpannableString背景太高。我想保持线条之间的间距,但要SpannableString更短。

这怎么可能?