首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集装箱颤振中的调用方法

集装箱颤振中的调用方法
EN

Stack Overflow用户
提问于 2020-09-14 06:54:47
回答 1查看 237关注 0票数 0

我有一个名为A.dart的类,因为我使用的是进程间栏,如下所示

代码语言:javascript
复制
new Container(
            margin: const EdgeInsets.fromLTRB(0, 10, 0, 0),
            child: IntervalProgressBar(
                direction: IntervalProgressDirection.horizontal,
                max: count,
                progress: count1,
                intervalSize: 2,
                size: Size(600, 10),
                highlightColor: Colors.pink,
                defaultColor: Colors.grey,
                intervalColor: Colors.transparent,
                intervalHighlightColor: Colors.transparent,
                reverse: false,
                radius: 0)),

一旦用户单击按钮,我将导航到从A.dart到一个名为B.dart的类的另一个类。一旦使用完类B.dart中的进程,我将弹出类B.dart。同样,A.dart对于用户来说也是可见的。因此,我的问题是,当用户从IntervalProgressBar到A,dart时,如何用更新的值重新启动B.dart。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-14 08:46:59

您可以复制粘贴,运行下面的完整代码

您可以调用await Navigator.push然后调用setState

代码语言:javascript
复制
void _gotoB() async {
    String parameter = await Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => RouteB()),
    );

    setState(() {
      count1 = int.tryParse(parameter);
    });
  }

...  
  
RaisedButton(
            child: Text('Go back'),
            onPressed: () {
              Navigator.pop(context, _textEditingController.text);
            },
          ),  

工作演示

全码

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'package:intervalprogressbar/intervalprogressbar.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int count = 10;
  int count1 = 3;

  void _gotoB() async {
    String parameter = await Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => RouteB()),
    );

    setState(() {
      count1 = int.tryParse(parameter);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Container(
                margin: const EdgeInsets.fromLTRB(0, 10, 0, 0),
                child: IntervalProgressBar(
                    direction: IntervalProgressDirection.horizontal,
                    max: count,
                    progress: count1,
                    intervalSize: 2,
                    size: Size(600, 10),
                    highlightColor: Colors.pink,
                    defaultColor: Colors.grey,
                    intervalColor: Colors.transparent,
                    intervalHighlightColor: Colors.transparent,
                    reverse: false,
                    radius: 0)),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _gotoB,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}

class RouteB extends StatefulWidget {
  @override
  _RouteBState createState() => _RouteBState();
}

class _RouteBState extends State<RouteB> {
  TextEditingController _textEditingController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
          body: Column(
        children: [
          TextField(
            controller: _textEditingController,
          ),
          RaisedButton(
            child: Text('Go back'),
            onPressed: () {
              Navigator.pop(context, _textEditingController.text);
            },
          ),
        ],
      )),
    );
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63879404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档