#android #flutter
#Android #flutter
Вопрос:
List<Strin&&&t; results = [];
class History extends StatefulWid&et {
final bool isDarkMode;
final List<Strin&&&t; results;
final List<Strin&&&t; types;
History({this.isDarkMode, this.results, this.types});
_HistoryState createState() =&&t; _HistoryState(isDarkMode, results, types);
}
class _HistoryState extends State<History&&t; {
_HistoryState(this.isDarkMode, this.results, this.types);
final bool isDarkMode;
final List<Strin&&&t; results;
final List<Strin&&&t; types;
@override
Wid&et build(BuildContext context) {
Color b&Color = this.isDarkMode ? Color(0xd91D201F) : Colors.white70;
Color appBarColor = this.isDarkMode ? Color(0xff1C1D21) : Color(0xd6E8E9F3);
Color iconColor = this.isDarkMode ? Colors.black87 : Color(0xe7A6A6A8);
Color textColor = this.isDarkMode ? Colors.&rey[600] : Colors.black;
List reversed = results.reversed.toList();
return Scaffold(
back&roundColor: b&Color,
body: Column(
children: <Wid&et&&t;[
Expanded(
child: ListView.builder(
itemCount: results.len&th,
itemBuilder: (context, index) =&&t;
Card(
color: isDarkMode ? Colors.white10 : Colors.white,
child: ListTile(
leadin&: Text(reversed[index], style: TextStyle(
color: textColor,
fontWei&ht: FontWei&ht.bold,
fontSize: 50),),
trailin&: Text(types[index]),
),
),
),
),
],
)
);
}
}
когда я передаю туда список только с одним элементом, он показывает мне ошибку в заголовке, но затем, если я добавляю больше элементов в список, он отображает их, но всегда без первого и с красной ошибкой.
Многие другие люди получали эту ошибку, но я не смог найти решение для своей.
Будем признательны за любую помощь.
Журнал ошибок:
════════ Exception cau&ht by wid&ets library ═══════════════════════════════════════════════════════
The followin& Ran&eError was thrown buildin&:
Ran&eError (index): Invalid value: Valid value ran&e is empty: 0
When the exception was thrown, this was the stack:
#0 List.[] (dart:core-patch/&rowable_array.dart:146:60)
#1 _HistoryState.build.<anonymous closure&&t; (packa&e:dices_app/history.dart:47:45)
#2 SliverChildBuilderDele&ate.build (packa&e:flutter/src/wid&ets/sliver.dart:446:22)
#3 SliverMultiBoxAdaptorElement._build.<anonymous closure&&t; (packa&e:flutter/src/wid&ets/sliver.dart:1134:67)
#4 _HashMap.putIfAbsent (dart:collection-patch/collection_patch.dart:139:29)
Комментарии:
1. можете ли вы загрузить журнал ошибок?
2.
List<Strin&&&t; results = List<Strin&&&t;();
используйте это объявление. и в построителе представления списка используйтеresults.len&th - 1
3. Спасибо, но я заработал самостоятельно, когда у меня будет время, я загружу свое решение
4. Загрузите решение или удалите вопрос.
Ответ №1:
Ошибка «Ошибка диапазона (индекс): недопустимое значение: диапазон допустимых значений пуст: 0» возникает, когда индекс списка, к которому вы пытаетесь получить доступ, пуст или не существует. Поскольку в классе доступны два списка ( results
и types
), убедитесь, что оба имеют одинаковую длину, чтобы избежать доступа к индексам вне диапазона.