小编LLC*_*pos的帖子

如何在状态转换时添加淡入/淡出

默认情况下,当 a 发生状态更改时StatefulWidget,状态转换没有动画。有什么办法可以吃一些吗?例如,在转换时,我想淡出旧状态并淡入新状态。

我知道如何在路线之间添加过渡动画,但找不到在状态转换之间执行此操作的方法。

有一个例子,让我们使用 Flutter 默认应用程序:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      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 _counter …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

Cats Effect 的 IO.suspend 函数到底有什么作用?

猫效应有什么作用IO.suspend以及为什么有用?有文档,但并不完全清楚。

文档给出了以下用例:

import cats.effect.IO

def fib(n: Int, a: Long, b: Long): IO[Long] =
  IO.suspend {
    if (n > 0)
      fib(n - 1, b, a + b)
    else
      IO.pure(a)
  }
Run Code Online (Sandbox Code Playgroud)

举个例子,为什么我要使用上面的函数,而不是下面的类似函数?

import cats.effect.IO

import scala.annotation.tailrec

@tailrec
def fib(n: Int, a: Long, b: Long): IO[Long] =
  if (n > 0)
    fib(n -1, b, a + b)
  else
    IO.pure(a)

Run Code Online (Sandbox Code Playgroud)

functional-programming scala scala-cats cats-effect

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