計算每個列表文字的長度
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)); } }
浙公網安備 33010602011771號