Flex 3:突出显示(更改背景)字符串中的某些字符

发布于 2025-01-04 03:20:00 字数 147 浏览 1 评论 0 原文

我正在 Flex 3 中实现一个联系人列表,现在我已经实现了列表过滤来显示结果。但是,我想突出显示结果中的匹配字符,是否可以实现此目的?示例:

在此处输入图像描述

I'm implementing a contacts list in Flex 3, and I right now I already implemented the list filtering to display the results. However, I would like to highlight the matching characters in the results, is it possible to accomplish this? Example:

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

往事随风而去 2025-01-11 03:20:00

您可以使用库。查看 gskinner 中的示例。您还可以使用 setTextFormat 更改某些字符的格式,但使用这种方法您无法更改文本背景颜色。如果您不需要更改背景颜色,只需下划线即可使用文本格式或 TextRange。

如果您需要 100% 的解决方案,只需深入研究之类的解决方案或阅读较旧但不错的帖子。希望这能让您知道从哪里开始。

You can use this library. Look example from gskinner. You can also use setTextFormat to change the format of some characters but with this approache you can't change the text background color. If you don't need to change background color and it's enough to just underline use text format or TextRange.

If you need the 100% solution just dig into a solution like this or read this older but nice post. Hope that gives you a idea where to start from.

浪漫人生路 2025-01-11 03:20:00

要更改背景颜色,只需将标签或文本对象放置在 HBox 内即可。

<mx:HBox>
   <mx:Label text="{contact.name}"/>
</mx:HBox>

然后在 HBox 上设置背景颜色,您可以将其引用为 Label#parent。由于您正在创建动态联系人列表,因此我假设您将它们放在一个数组中,并循环遍历该数组以检查名称是否匹配。

var currentContact:Label = myContactLabelsArray.getItemAt(i);
...
Container(currentContact.parent).setStyle("backgroundColor","Yellow");

但是,以这种方式设置样式可能会很昂贵 http://livedocs.adobe.com/flex/3/html/help.html?content= styles_08.html

To change the background color, just place your Label or Text object inside of an HBox.

<mx:HBox>
   <mx:Label text="{contact.name}"/>
</mx:HBox>

Then set the backgroundColor on the HBox, which you can reference as the Label#parent. Since you're creating a dynamic Contacts list, I'll assume you have them in an array and are looping over the array to check if the name matches

var currentContact:Label = myContactLabelsArray.getItemAt(i);
...
Container(currentContact.parent).setStyle("backgroundColor","Yellow");

However, setting styles this way can be expensive http://livedocs.adobe.com/flex/3/html/help.html?content=styles_08.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文