keywordTextSpans static method
Implementation
static keywordTextSpans(String word, String keyword,Color normalColor,Color keywordColor) {
List<TextSpan> spans = [];
if (word.isEmpty) return spans;
//搜索关键字高亮忽略大小写
String wordL = word.toLowerCase(), keywordL = keyword.toLowerCase();
List<String> arr = wordL.split(keywordL);
TextStyle normalStyle = TextStyle(fontSize: 15, color: normalColor);
TextStyle keywordStyle = TextStyle(fontSize: 15, color: keywordColor);
int preIndex = 0;
int valIndex = 0;
for (int i = 0; i < arr.length; i++) {
if (i != 0) {
//搜索关键字高亮忽略大小写
preIndex = wordL.indexOf(keywordL, preIndex);
spans.add(TextSpan(
text: word.substring(preIndex, preIndex + keyword.length),
style: keywordStyle));
}
String val = arr[i];
if (val.isNotEmpty) {
valIndex = wordL.indexOf(val,valIndex);
spans.add(TextSpan(text: word.substring( valIndex,val.length+valIndex), style: normalStyle));
}
}
return spans;
}