计算每个列表文字的长度
List<double> itemWidths = []; // 计算每个列表项的宽度 void calculateItemWidths() { // 清空之前计算的宽度 itemWidths.clear(); update(); // 创建一个 TextPainter 实例来计算文本的宽度 final textPainter = TextPainter( textDirection: TextDirection.ltr, // 设置文本的方向为从左到右 ); // 遍历每个 item 以计算其宽度 for (var item in homeController.answerListShow) { // 设置 TextSpan,定义要计算的文本及其样式 textPainter.text = TextSpan( text: "${item.questionYw}Q ${homeController.questionIndex + 1}", // 需要测量的文本内容 style: TextStyle( fontSize: ScreenAdapter.fontSize(30)), // 设置文本的样式,这里是字体大小为 30 ); // 布局计算文本的实际宽度 textPainter.layout(); // 计算文本宽度,并加上额外的 20 像素的边距 // 这个边距通常用于保证文本不紧贴容器的边缘 itemWidths.add(textPainter.width + ScreenAdapter.width(160)); } }
标签:文字,itemWidths,item,宽度,计算,textPainter,长度,文本,flutter From: https://www.cnblogs.com/xbinbin/p/18354009