我正在尝试以不同颜色显示一些文本。我了解了 RichText
小部件并按如下方式使用它;
Future<List<TextSpan>> listOfEventsAtDay({String day, String monthNum}) async {
final result = await DatabaseHelper.instance
.queryForEventsAtDay(mnth: monthNum, dy: day);
List<TextSpan> textSpans = [];
int count = result.length;
for (int i = 0; i < count; i++) {
final String string = "-${result[i]['year']}: ${result[i]['title']}\n";
textSpans.add(TextSpan(
text: string,
));
}
return textSpans;
}
稍后调用;
ListTile( title: RichText(text: TextSpan(children: snapshot.data),
我现在不想要任何复杂的样式。在深色模式下,文本应为白色,在浅色模式下,文本应为黑色。就这样。但问题是,文字总是白色的。为什么它不随亮度设置调整?有什么办法可以做到这一点?请帮助我...
最佳答案
经过一些学习,我可以回答我的问题。
Future<List<TextSpan>> listOfEventsAtDay({String day, String monthNum, BuildContext context}) async {
final result = await DatabaseHelper.instance
.queryForEventsAtDay(mnth: monthNum, dy: day);
List<TextSpan> textSpans = [];
int count = result.length;
for (int i = 0; i < count; i++) {
final String string = "-${result[i]['year']}: ${result[i]['title']}\n";
textSpans.add(TextSpan(
text: string,
style: DefaultTextStyle.of(context).style,
));
}
这修复了它。
关于Flutter:RichText 不适用于主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63868013/