render method
Render the item at the given index.
Implementation
@override
String render(ListModel model, int index, ListItem item) {
final selected = model.index == index;
final value = item.filterValue();
final matches = model.matchesForItem(index);
String styledValue;
if (matches != null && matches.isNotEmpty) {
// Highlight matched characters
final buffer = StringBuffer();
for (var i = 0; i < value.length; i++) {
if (matches.contains(i)) {
buffer.write(matchedStyle.render(value[i]));
} else {
buffer.write(value[i]);
}
}
styledValue = buffer.toString();
} else {
styledValue = value;
}
if (selected) {
return selectedStyle.render('> $styledValue');
}
return normalStyle.render(' $styledValue');
}