Flutter: ошибка диапазона (индекс): недопустимое значение: диапазон допустимых значений пуст: 0

#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 ), убедитесь, что оба имеют одинаковую длину, чтобы избежать доступа к индексам вне диапазона.