我正在制作一個游戲,其中顯示前 3 名玩家的螢屏......它運行良好,但當串列項小于 3 時顯示索引錯誤......在這種情況下,我想要如下輸出
約翰
沒有記錄
沒有記錄
import 'package:flutter/material.dart';
import 'datafile.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Top 3 Players"),
),
body: ListView.builder(
itemCount: 3,
itemBuilder: (context, index) {
return Text(games[index].player);
}),
),
);
}
}
uj5u.com熱心網友回復:
這是我找到的解決方案
ListView.builder(
itemCount: 3,
itemBuilder: (context, index) {
return Text(games.length == 3
? games[index]
: (index > games.length - 1)
? 'No Record'
: games[index - games.length < 0 ? index : games.length]);
}),
uj5u.com熱心網友回復:
由于您將值硬編碼為 3,因此如果不等于或大于itemCount3,它肯定會引發錯誤。games.length
這是解決方案:
Column(
children: [
ListView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: games.length >= 3 ? 3 : games.length,
itemBuilder: (context, index) {
return Text(games[index].player!);
}),
if (games.length < 3) ...[
for (int x = 0; x < (3 - games.length); x ) ...[
const Text(
"No Record!",
)
]
],
],
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/458983.html
上一篇:如何使游標工具提示不會離開螢屏
