相关疑难解决方法(0)

在构建期间调用setState()或markNeedsBuild

class MyHome extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => new MyHomePage2();
}

class MyHomePage2 extends State<MyHome> {
  List items = new List();

  buildlist(String s) {
    setState(() {
      print("entered buildlist" + s);
      List refresh = new List();
      if (s == 'button0') {
        refresh = [
          new Refreshments("Watermelon", 250),
          new Refreshments("Orange", 275),
          new Refreshments("Pine", 300),
          new Refreshments("Papaya", 225),
          new Refreshments("Apple", 250),
        ];
      } else if (s == 'button1') {
        refresh = [
          new Refreshments("Pina Colada", 250),
          new Refreshments("Bloody Mary", 275),
          new Refreshments("Long …
Run Code Online (Sandbox Code Playgroud)

size listview setstate dart flutter

20
推荐指数
5
解决办法
2万
查看次数

如何在Flutter中监听Drawer打开/关闭动画

作为 Flutter 新手,我正在通过重新创建现有的 Android 应用程序来进行学习练习。然而,我在制作“旋转的、不断增长的主页图标”时遇到了麻烦,该图标的动画效果应与抽屉打开/关闭动画同步。

所需的抽屉/主页图标行为如下所示:

在此输入图像描述

我在 Android 中通过实现实现了这个

DrawerListener.onDrawerSlide(View drawerView, float slideOffset) 
Run Code Online (Sandbox Code Playgroud)

我在 Flutter 中执行此操作的简单方法是使用 ScaleTransition 和 RotationTransition 来监听打开/关闭抽屉的相同动画。

我可以看到 ScaffoldState 有一个 DrawerControllerState,但它是私有的。

final GlobalKey<DrawerControllerState> _drawerKey = new GlobalKey<DrawerControllerState>();
Run Code Online (Sandbox Code Playgroud)

即使我可以以某种方式访问​​ DrawerControllerState (我不知道如何访问),我也无法访问 _animationChanged() 和 _controller,因为它们都是 DrawerControllerState 的私有成员。

我觉得我的做法是错误的,而且有一种对 Flutter 更自然的更好方法,但我看不到。

请问谁能描述一下 Flutter 的实现方式吗?

dart flutter flutter-animation

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

如何捕获抽屉的打开和关闭抖动?

如何捕捉抽屉打开和关闭的颤动?原则上,必须使用两个对象来实现此目的:“保存”抽屉的 DrawerController 和抽屉回调。抽屉回调应该跟踪抽屉的打开和关闭,但是https://github.com/flutter/flutter/issues/21272https://github.com/flutter/flutter/issues/23630中讨论的代码确实如此不行。任何人都可以提供建议吗?

flutter

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

标签 统计

flutter ×3

dart ×2

flutter-animation ×1

listview ×1

setstate ×1

size ×1