小编ctr*_*inh的帖子

如何在 Flutter 中每五秒获取一次数据(方法调用)?

在 JavaScript 中,我可以通过fetchData()每五秒调用一个函数来不断地获取数据,而无需用户的明确请求setInterval(function() { fetchData() }, 5000);,这对我来说是一个非常有用的工具。Flutter 中是否有类似的等价物?

javascript flutter

4
推荐指数
1
解决办法
4899
查看次数

发生更改时如何在Flutter中重建窗口小部件

编辑:我已经编辑了以下代码,以提供一种获取数据的方法以及用于构建列车估算值的小部件的方法(使用"API_URL"和替换所有API信息"API_STOP_ID")。我希望这能更好地帮助我们解决问题!我真的很感谢任何人都可以提供的任何信息-我一直在为这个项目而努力!再次谢谢大家!

原始帖子: 我有一个ListTiles的ListView,每个ListTiles都有一个尾随小部件,可在新的Text小部件中构建列车到达估计。这些尾随的小部件每五秒钟更新一次(由打印语句证明)。当应用程序从火车的API提取数据时,它会显示_buildEstimatesNull()构建的“无数据”文本小部件,以作为填充。

但是,问题在于,即使应用程序完成了数据的提取并且_isLoading = false(由打印语句证明),仍然没有显示“没有数据” 。尽管如此,即使解决了问题,火车的估算值也会很快过时,因为尾随的小部件每隔五秒钟会更新一次,但这不会反映在实际的应用程序中,因为小部件是基于页面加载构建的。因此,我需要一种在尾随小部件获取新信息时对其进行重建的方法。

是否有办法让Flutter每隔五秒钟自动重建ListTile的跟踪小部件(或者每当_buildEstimatesS1更新/跟踪小部件的内部更新时)?

class ShuttleApp extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new ShuttleState();
  }
}

class ShuttleState extends State<ShuttleApp> {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new HomeState();
  }
}

class HomeState extends State<HomeScreen> {

  var _isLoading = true;

  void initState() {
    super.initState();
    _fetchData();
    const fiveSec = const …
Run Code Online (Sandbox Code Playgroud)

dart flutter

4
推荐指数
1
解决办法
2万
查看次数

如何在 Flutter 中自定义/旋转 Container 小部件的 BoxDecoration?

我有一个小部件,可以为公交车站构建圆形个人资料图片,并且截至目前,它在个人资料图片周围有一个圆形边框,如下所示。我想将圆形边框更改为虚线,并通过以虚线形式围绕个人资料图片盘旋/旋转来设置动画。有什么简单的方法可以做到这一点吗?非常感谢您提供的任何帮助!

圆形轮廓图片

return new Transform(
  transform: new Matrix4.diagonal3Values(
    animation.avatarSize.value,
    animation.avatarSize.value,
    1.0,
  ),
  alignment: Alignment.center,
  child: new Container(
    width: 110.0,
    height: 110.0,
    decoration: new BoxDecoration(
      shape: BoxShape.circle,
      border: new Border.all(
        color: Colors.white30,
      ),
    ),
    margin: const EdgeInsets.only(
      top: 24.0,
      left: 16.0,
    ),
    padding: const EdgeInsets.all(3.0),
    child: new ClipOval(
      child: new Image.asset(
        stopName.avatar,
      ),
    ),
  ),
);
Run Code Online (Sandbox Code Playgroud)

dart flutter

0
推荐指数
1
解决办法
3523
查看次数

标签 统计

flutter ×3

dart ×2

javascript ×1