Вы можете объединить, поместив юникод сразу после буквы:
String overlined = 'O\u{0305}V\u{0305}E\u{0305}R\u{0305}';
print(overlined); // Output: O̅V̅E̅R̅
Более динамическая версия (с упрощенной логикой) будет:
void main() {
String overlined = overline('I AM AN OVERLINED TEXT');
print(overlined); // Output: I̅ A̅M̅ A̅N̅ O̅V̅E̅R̅L̅I̅N̅E̅D̅ T̅E̅X̅T̅
}
String overline(String text) {
return text.split('').map((String char) {
if (char.trim().isEmpty)
return char;
else
return '$char\u{0305}';
}).join();
}
Однако, это довольносильно ограничен.Лучшим подходом было бы использовать свойство style
Text
Флаттера для этого:
const Text(
'OVER',
style: TextStyle(decoration: TextDecoration.overline),
);