Я новичок, чтобы трепетать, и у меня есть ... проблема с вышеуказанным.
Я получаю данные о нескольких объектах / документах из FireStore и создаю ListView.
Лог c или его отсутствие выглядит следующим образом:
Container
StreamBuilder
ListView
Container
Rows, Columns, Text and whatever to display each document from StreamBuilder.
Этот ListView содержит несколько контейнеров, в которых каждый контейнер отображает данные из одного объекта. Внутри каждого контейнера есть TextFormField, который принимает удвоение. Основываясь на этом значении, я хочу изменить Text () в том же контейнере - расчет.
Возможно ли это? Если так - как? Я понимаю, что могу как-то использовать TextEditController, но тогда результат вычисления будет редактируемым. Или?
return new ListView(//
children: getMedicationItem(asyncSnapshot
shrinkWrap: true,
children: asyncSnapshot.data.documents.map((DocumentSnapshot document) {
MyObject object = new MyObject(document, integerValue);
backgroundColor = !backgroundColor;
return new Container(
color: backgroundColor? Colors.black26: Colors.white,
child: new Row(
children: <Widget>[
new Flexible(
child: TextFormField(
onChanged: (text) {
double calculation = 0.0;
if (text.length > 0)
calculation = double.tryParse(text) * 23;
**UPDATE "$calculation" in Text() below**
},
keyboardType: TextInputType.number,
inputFormatters: [_decimal_validator],
)
),
new Flexible(
child: Text("$calculation"),
)
]
),
);
}
).toList(),
)
);