Обновление виджета с сохранением состояния из виджета без сохранения состояния — FlutterAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Обновление виджета с сохранением состояния из виджета без сохранения состояния — Flutter

Сообщение Anonymous »

В настоящее время я пытаюсь создать простое приложение-калькулятор во Flutter.
Я столкнулся с проблемой, из-за которой я пытаюсь обновить содержимое виджета с отслеживанием состояния в содержащем его виджете без сохранения состояния.Я прибегнул к использованию экземпляра моего виджета с отслеживанием состояния. Однако он не обновляется должным образом.

Код: Выделить всё

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();
Кто-нибудь знает, как я могу решить эту проблему, желательно без преобразования всего макета в макет с сохранением состояния?

Подробнее здесь: https://stackoverflow.com/questions/494 ... et-flutter
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Вход в систему веб -сайта с помощью вывода и сохранения вывода и сохранения вывода и сеанса?
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Вход в систему веб -сайта с помощью вывода и сохранения вывода и сохранения вывода и сеанса?
    Anonymous » » в форуме Php
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Обновление до Ignite 2.16 с включенным сохранением дает ошибку
    Anonymous » » в форуме JAVA
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Обновление до Ignite 2.16 с включенным сохранением дает ошибку
    Anonymous » » в форуме Apache
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Обновление до Ignite 2.16 с включенным сохранением дает ошибку
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»