#list #flutter #listview
#Список #трепетание #просмотр списка
Вопрос:
Я новичок в flutter. Я пытаюсь подсчитать текстовое поле Listview. Но когда вставить строку ниже в ItemBuilder
t1[index] = TextEditingController();
выдает ошибку nosuchmetoderror: недопустимый элемент в nul: «_set», но когда. Для этой цели я объявил переменную списка T1 .Пожалуйста, найдите решение для всего текстового поля в ListView.
Пример кода прилагается. Заранее спасибо.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
List data = ["apple kg", "banana kg", "mango kg"];
List<TextEditingController> t1;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
width: 400,
height: 300,
child: ListView.builder(
itemCount: data.length,
itemBuilder: (context, index) {
t1[index] = TextEditingController();
return Container(
width: 300,
decoration: BoxDecoration(
border: Border.all(color: Colors.blue, width: 0.5),
),
child: Column(
children: [
Text(data[index]),
TextField(),
],
),
);
},
),
),
Text("TOTAL SALE"),
],
),
);
}
}
Ответ №1:
В объявлении:
List<TextEditingController> t1=[];
При ListView.builder
изменении t1[index] = TextEditingController();
на
if(index<ti.length){
t1[index] = TextEditingController();
}else{
t1.add(TextEditingController());
}
Причина в том, что вы объявляете пустой список, и в списке нет элемента, вы пытаетесь установить для TextEditingController значение null.
Комментарии:
1. извините, я виноват.