Когда я добавляю новый элемент списка в свой список и пытаюсь изменить оценку. Эта вещь не так эффективна, как я хочу. Это влияет на следующий пункт, возможно, это ошибка алгоритма. Я надеюсь, что вы можете понять проблему. Я пытался добавить переменную для каждого dropdownButton, но мой разум не мог понять это. Что я должен использовать, чтобы исправить это?
import 'package:flutter/material.dart';
class GecmisDersler extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _GecmisDersler();
}
}
double _width = 300;
double _height = 50;
BorderRadiusGeometry _borderRadius = BorderRadius.circular(55);
class Dersler {
double width;
double height;
AnimatedContainer animatedContainer;
Dersler(double width, double height, AnimatedContainer animatedContainer) {
this.width = width;
this.height = height;
this.animatedContainer = animatedContainer;
}
}
class Notlar {
int id;
String name;
Notlar(this.id, this.name);
static List<Notlar> getCompanies() {
return <Notlar>[
Notlar(1, 'AA'),
Notlar(2, 'BA'),
Notlar(3, 'BB'),
Notlar(4, 'CB'),
Notlar(5, 'CC'),
Notlar(6, 'DC'),
Notlar(7, 'DD'),
Notlar(8, 'FD'),
Notlar(9, 'FF'),
Notlar(10, 'F0'),
];
}
}
List<Notlar> _companies = Notlar.getCompanies();
List<DropdownMenuItem<Notlar>> _dropdownMenuItems;
Notlar _selectedCompany;
Notlar s;
class _GecmisDersler extends State<GecmisDersler> {
void initState() {
_dropdownMenuItems = buildDropdownMenuItems(_companies);
_selectedCompany = _dropdownMenuItems[0].value;
super.initState();
}
Notlar selectedCompany;
List<DropdownMenuItem<Notlar>> buildDropdownMenuItems(List companies) {
List<DropdownMenuItem<Notlar>> items = List();
for (Notlar company in companies) {
items.add(
DropdownMenuItem(
value: company,
child: Text(company.name),
),
);
}
return items;
}
var currentSelectedValue;
static const deviceTypes = ["Mac", "Windows", "Mobile"];
Widget typeFieldWidget() {
return Container(
padding: EdgeInsets.symmetric(horizontal: 20),
child: FormField<String>(
builder: (FormFieldState<String> state) {
return InputDecorator(
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0))),
child: DropdownButtonHideUnderline(
child: DropdownButton<String>(
hint: Text("Select Device"),
value: currentSelectedValue,
isDense: true,
onChanged: (newValue) {
setState(() {
currentSelectedValue = newValue;
});
print(currentSelectedValue);
},
items: deviceTypes.map((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
),
),
);
},
),
);
}
List<ExpansionTile> list = [];
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Uni-Grade'),
actions: <Widget>[
Padding(
padding: EdgeInsets.only(right: 30),
child: GestureDetector(
onTap: () {
setState(() {
list.add(
ExpansionTile(
title: Text('1. Dönem'),
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
SizedBox(
width: 200,
child: TextField(
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: ' Ders Adı'),
),
),
SizedBox(
width: 65,
child: TextField(
keyboardType: TextInputType.number,
decoration: InputDecoration(
border: OutlineInputBorder(),
labelText: 'ECTS'),
),
),
SizedBox(
height: 30,
width: 80,
child: new DropdownButton(
value: _selectedCompany,
items: _dropdownMenuItems,
onChanged: (Notlar selectedCompany) {
setState(() {
_selectedCompany = selectedCompany;
});
},
),
)
],
),
],
),
);
});
},
child: Icon(
Icons.add,
size: 30.00,
),
),
),
],
),
body: new ListView.builder(
itemCount: list.length,
itemBuilder: (context, int index) {
return list[index];
}),
);
}
}
Вот проблема