zoukankan      html  css  js  c++  java
  • translations.dart阅读

    • 它是一个StatefulWidget, 初始化传入一个Listenable
    • 通过Listenable内部绑定了setState方法去触发子类的 build方法.
    • 子类通过继承AnimatedWidget,通过传入的Animation就能触发build方法
    • 以AnimateBuilder为例:

      _AnimatedState
      ....
      @override
      void initState() {
      super.initState();
      widget.listenable.addListener(_handleChange);
      }
      void _handleChange() {
      setState(() {
      // The listenable's state is our build state, and it changed already.
      });
      }
      @override
      Widget build(BuildContext context) => widget.build(context);
      AnimatedWidget
      ....
      @protected
      Widget build(BuildContext context);
      class AnimatedBuilder extends AnimatedWidget
      ....
      @override
      Widget build(BuildContext context) {
      return builder(context, child);
      }

    小结:

    • 子类重写父类的build方法,父类完成动画相关的事件半丁,子类在build方法触发时根据当前的animation的value来更新界面。基于这个设计模式,Flutter提供了如下相关Widget:

      DiagnosticableTree (diagnostics.dart)
      Widget (framework.dart)
      StatefulWidget (framework.dart)
      AnimatedWidget (transitions.dart)
      AnimatedModalBarrier (modal_barrier.dart)
      _Shaker (input_decorator.dart)
      _TabStyle (tabs.dart)
      PositionedTransition (transitions.dart)
      RotationTransition (transitions.dart)
      DefaultTextStyleTransition (transitions.dart)
      RelativePositionedTransition (transitions.dart)
      SlideTransition (transitions.dart)
      AnimatedBuilder (transitions.dart)
      SizeTransition (transitions.dart)
      DecoratedBoxTransition (transitions.dart)
      ScaleTransition (transitions.dart)
      AlignTransition (transitions.dart)
    • 上面包括了常用的各种属性动画,如果开发时动画种类比较单一则拿来即用。

    • 以上的Widget是对Widget进行了一次包装,min 命名上在原来的Widget后面加上了Translation.

  • 相关阅读:
    bzoj4236JOIOJI
    bzoj1002[FJOI2007]轮状病毒
    bzoj4563[Haoi2016]放棋子
    前端框架——Bootstrap
    jQuery三——筛选方法、事件
    jQuery二——属性操作、文档操作、位置属性
    jQuery基础——选择器、效果
    JavaScirpt(JS)——BOM浏览器对象模型
    JavaScirpt(JS)——DOM文档对象模型
    JavaScirpt(JS)——js介绍及ECMAScript
  • 原文地址:https://www.cnblogs.com/wwoo/p/animatedwidget.html
Copyright © 2011-2022 走看看