• flutter学习之控件的使用


    两个重要Widget

    StatelessWidget:
    1、无状态widget,内容不可变,这意味着它们的属性不能改变——所有的值都是最终的。
    2、如果无状态Widget里面有子Widget,并且子Widget是有状态的,则子Widget的内容是可以通过setState来更改的。无状态Widget影响的仅仅是自己是无状态的,不回影响他的父Widget和子Widget。
    StatefulWidget:
    1、有状态widget,内容可变,Stateful widgets 持有的状态可能在widget生命周期中发生变化。
    2、创建一个有状态的widget需要进行以下操作:
            要创建一个自定义有状态widget,需创建两个类:StatefulWidget和State。
            我们要定义一个widget类,继承自StatefulWidget。
            子State,包含该widget状态并定义该widget build()方法的类,它继承自State。
            状态对象包含widget的状态和build() 方法。
            当widget的状态改变时,状态对象调用setState(),告诉框架重绘widget
    

    页面跳转:

    Navigator.of(context).pushNamed(“your page routeName”);

    常用控件介绍:

    Scaffold:脚手架
    Text:文本框
    ElevatedButton:按钮
    Container:容器,具有边距,居中,靠左,靠右显示的属性
    Column:竖向排列的一个显示控件,类似于横向的linerlayout
    Row:横向排列的一个控件,类似于竖向的linerlayout
    Expanded:一般用在Row中,占满一行剩余长度
    Icon:图标,使用后示例:Icon(Icons.arrow_back,)
    TextField:编辑框,Android中的edittext
    Stack:事件穿透,widget层叠,类似于Android中的relativelayout

    scaffold使用示例:

    1. Scaffold(
    2. appBar: AppBar(
    3. title: Text("蓝牙"),
    4. leading: IconButton(
    5. icon: Icon(Icons.arrow_back,),
    6. onPressed: (){
    7. Navigator.of(context).pop();
    8. },
    9. ),
    10. ),
    11. body: “显示内容各种控件都可以放,最层只能是一个Widget”,
    12. )
    ElevatedButton使用示例:
    ElevatedButton(onPressed: (){//此处处理点击事件}, child: Text("搜索"))

  • 相关阅读:
    基于PHP+MySQL托管中心管理系统的设计与实现
    【无标题】
    Element UI主题换肤功能(基于vue-element-admin框架)
    jq源码解析之绑在$,jQuery上面的方法
    Linux进阶实用指令合集
    JUC系列(三) 不安全的集合类
    是时候考虑升级 JDK 17 了
    MySQL的join你真的了解吗!!!
    JavaScript变量预解析和函数预解析
    GC不懂?进来我们聊聊
  • 原文地址:https://blog.csdn.net/congcongguniang/article/details/126317037