В настоящее время я пытаюсь создать простое приложение калькулятора в Flutter. Однако он не обновляется, как ожидалось. < /P>
import 'package:calculator/calcLogic.dart';
import 'package:flutter/material.dart';
class CalcHome extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Calculator'),
),
body: new CalcLayout());
}
}
class CalcLayout extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Column(children: getColumns());
}
List getColumns() {
var labels = [
"1", "2", "3", "+",
"4", "5", "6", "-",
"7", "8", "9", "*",
"C", "0", "=", "/",
""];
List list = new List();
list.add(new ResultString());
for (int i = 0; i < 4; i++) {
list.add(new Expanded(
child: new Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: new List.generate(4, (ind) {
var row = labels.sublist(i * 4, i * 4 + 4);
var text = row[ind];
return new Expanded(
child: new RaisedButton(
onPressed: () => _state.doUpdate(text),
child: new Text('$text')));
}))));
}
return list;
}
}
class ResultString extends StatefulWidget {
@override
createState() => new ResultState();
}
class ResultState extends State {
var _text = CalcLogic.getResult();
@override
Widget build(BuildContext context) {
return new Center(
child: new Text(
"$_text",
style: new TextStyle(fontSize: 40.0),
),
heightFactor: 2.0,
);
}
void doUpdate(String text) {
setState(() {
CalcLogic.doButton(text);
_text = CalcLogic.getResult();
});
}
}
ResultState _state = new ResultState();
< /code>
Кто -нибудь знает, как я могу решить эту проблему, предпочтительно, не преобразуя весь макет в состояние состояния? < /p>
Подробнее здесь: https://stackoverflow.com/questions/494 ... et-flutter
Обновление виджета Stateful из виджета без сохранения состояния - трепетание ⇐ Android
Форум для тех, кто программирует под Android
1758337400
Anonymous
В настоящее время я пытаюсь создать простое приложение калькулятора в Flutter. Однако он не обновляется, как ожидалось. < /P>
import 'package:calculator/calcLogic.dart';
import 'package:flutter/material.dart';
class CalcHome extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Calculator'),
),
body: new CalcLayout());
}
}
class CalcLayout extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Column(children: getColumns());
}
List getColumns() {
var labels = [
"1", "2", "3", "+",
"4", "5", "6", "-",
"7", "8", "9", "*",
"C", "0", "=", "/",
""];
List list = new List();
list.add(new ResultString());
for (int i = 0; i < 4; i++) {
list.add(new Expanded(
child: new Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: new List.generate(4, (ind) {
var row = labels.sublist(i * 4, i * 4 + 4);
var text = row[ind];
return new Expanded(
child: new RaisedButton(
onPressed: () => _state.doUpdate(text),
child: new Text('$text')));
}))));
}
return list;
}
}
class ResultString extends StatefulWidget {
@override
createState() => new ResultState();
}
class ResultState extends State {
var _text = CalcLogic.getResult();
@override
Widget build(BuildContext context) {
return new Center(
child: new Text(
"$_text",
style: new TextStyle(fontSize: 40.0),
),
heightFactor: 2.0,
);
}
void doUpdate(String text) {
setState(() {
CalcLogic.doButton(text);
_text = CalcLogic.getResult();
});
}
}
ResultState _state = new ResultState();
< /code>
Кто -нибудь знает, как я могу решить эту проблему, предпочтительно, не преобразуя весь макет в состояние состояния? < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/49447090/updating-stateful-widget-from-stateless-widget-flutter[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия