zoukankan      html  css  js  c++  java
  • Flutter https://flutter.cn/docs学习之加入交互体验

    https://flutter.cn/docs/development/ui/interactive

     你会学到什么

    • 如何响应点击。

    • 如何创建自定义 widget。

    • 无状态和有状态 widget 之间的区别。

    有状态和无状态的 widgets

    有些 widgets 是有状态的, 有些是无状态的。如果用户与 widget 交互,widget 会发生变化,那么它就是_有状态的_。

    Stateless widget 不会发生变化。[Icon][]、[IconButton][] 和 [Text][] 都是无状态 widget,它们都是 [StatelessWidget][] 的子类。

    stateful widget 是动态的。例如,可以通过与用户的交互或是随着数据的改变而导致外观形态的变化。 [Checkbox][]、[Radio][]、[Slider][]、[InkWell][]、[Form][] 和 [TextField][] 都是有状态 widget,它们都是 [StatefulWidget][] 的子类。

    一个 widget 的状态保存在一个 [State][] 对象中, 它和 widget 的显示分离。 Widget 的状态是一些可以更改的值, 如一个滑动条的当前值或一个复选框是否被选中。当 widget 状态改变时, State 对象调用 setState(), 告诉框架去重绘 widget

    创建一个有状态的 widget(自定义)

    以下划线(_)开头的成员或类是私有的

    状态管理

    重点是什么?

    • 有多种方法可以管理状态。

    • 您作为 widget 的设计者,需要选择使用何种管理方法。

    • 如果不是很清楚时, 就在父 widget 中管理状态。

    谁管理着 stateful widget 的状态?widget 本身?父 widget?双方?另一个对象?答案是…… 这取决于实际情况。有几种有效的方法可以给你的 widget 加入交互。作为 widget 设计师,你可以基于你所期待的表现 widget 的方式来做决定。以下是一些管理状态的最常见的方法:

    如何决定使用哪种管理方法?以下原则可以帮助您决定:

    • 如果状态是用户数据,如复选框的选中状态、滑块的位置,则该状态最好由父 widget 管理。      ------->因为事件是给界面巡逻处理的,不与按钮相关

    • 如果所讨论的状态是有关界面外观效果的,例如动画,那么状态最好由 widget 本身来管理。   

    • 如果有疑问,首选是在父 widget 中管理状态

    widget 管理自己的状态

    有时,widget 在内部管理其状态是最好的。例如,当 [ListView][] 的内容超过渲染框时, ListView 自动滚动。大多数使用 ListView 的开发人员不想管理 ListView 的滚动行为,因此 ListView 本身管理其滚动偏移量

  • 相关阅读:
    [转]MTK android 下载及启动过程
    新博客开通~~~
    【代码导读】Github 开源项目——wysihtml5 富编辑器(Bootstrap 风格)【一】
    【代码导读】Github 开源项目——wysihtml5 富编辑器(Bootstrap 风格)【二】
    RHEL6.5 和RHEL7 的区别Rhel6.5实验环境搭建
    RAID的介绍和RAID的安装
    对linux初学者的建议
    linux搭建可用实验环境-rhel7
    Linux下修改Mysql的用户(root)的密码
    confluence的搭建破解安装
  • 原文地址:https://www.cnblogs.com/caosq/p/13815481.html
Copyright © 2011-2022 走看看