Flutter Widget开发之Focus组件图文详解

作者:程序员界的小学生 时间:2023-06-21 03:47:41 

就网络和应用程序而言,键盘快捷键很重要,今天我们要谈的便是让这类快捷键得以在Flutter运作的小部件:Focus、Shortcuts和Action。

这套系统中的第一个小部件是Focus,小部件树中到处都有它的踪迹,包括按钮个文本输入在内之类的用户界面交互区块

FocusNode对象

这个小部件还包含FocusNode对象

Focus({
   FocusNode? node,
   Widget? child,
}) : node = node ?? FocusNode();

其作用是指示Flutter用户交互理应在代码中出现的位置。

整体而言。这个Focus小部件的网络及所属的FocusNode会在您的Flutter应用中构成另一名为Focus树的结构

Flutter Widget开发之Focus组件图文详解

对此首先要知道的是节点永远被视为是作用中的,那作用中的FocusNodes有何涵义呢?

这代表实体键盘输入这类的系统特殊事件,会首先出现在Focuss小部件中,当中的FocusNode且在向顶部结构送出推播通知钱都会维持作用中的状态。

Flutter Widget开发之Focus组件图文详解

小部件树向上传送时会起到怎样的作用呢

当这些按键事件于小部件树向上传送时会起到怎样的作用呢?

这些事件会搜寻按键所对应的Shortcuts小部件并将之转为意图对象(intent),该对象起于作用中的FocusNodes并会持续朝应用程序顶部浮现。

Flutter Widget开发之Focus组件图文详解

至于Focus小部件,其实Flutter框架所属的按钮和文本输入之类的交互控件皆已包含所需的Focus小部件,不过哦有时候若您想要从头规划用户体验,可能就会想自行添加。

例如样式的折叠卡片accordion,标题应以焦点处理设为Focusable,藉此显示键盘快捷指令来切换面板的可见性。

Flutter Widget开发之Focus组件图文详解

要这样做,得使用Accordion标题小部件,并将其子级包装在Focus小部件中,这是要为accordion小部件自定义键盘快捷键的第一步

Accordion(
   children: <Widget>[
       Header(
           child: Focus(
               child: Text('Section 1'),
           ),
       ),
       Section1Body(),
   ],
)

请继续锁定作为第二和第三步,Shortcuts和Actions小部件的后续介绍

如果想了解有关Focus的内容,或者关于Flutter的其他功能,请访问flutter.dev

来源:https://juejin.cn/post/7170924861760471048

标签:Flutter,Widget,Focus,组件
0
投稿

猜你喜欢

  • Android Studio多渠道打包的配置方法

    2023-06-15 23:19:48
  • Android类加载流程分析

    2023-05-30 11:13:44
  • Mybatis generator自动生成代码插件实例解析

    2022-06-04 22:52:33
  • Java 实战项目锤炼之医院门诊收费管理系统的实现流程

    2022-08-10 11:35:08
  • JavaSwing FlowLayout 流式布局的实现

    2023-10-02 03:59:41
  • Android多线程学习实例详解

    2022-02-17 19:00:56
  • C# 打开蓝牙设置界面的两种方法

    2021-12-22 04:51:43
  • Android用PopupWindow实现自定义Dailog

    2023-11-03 13:34:57
  • 详解Android Studio正式签名进行调试的实现步骤

    2021-12-30 21:56:07
  • Android ViewPager实现无限循环效果

    2022-03-14 00:15:42
  • Android 沉浸式状态栏与隐藏导航栏实例详解

    2021-09-08 07:51:14
  • Flutter自定义圆盘取色器

    2023-07-05 23:55:43
  • c# Invoke和BeginInvoke 区别分析

    2022-09-03 15:20:49
  • Java实现批量下载选中文件功能

    2021-09-09 17:57:45
  • Spring注解配置IOC,DI的方法详解

    2023-10-18 14:06:23
  • 关于java.util.Random的实现原理详解

    2023-05-18 14:52:08
  • 解决线程池中ThreadGroup的坑

    2023-08-24 00:13:47
  • android Tween Animation属性设置方法实例

    2022-07-12 22:25:19
  • C#实现的json序列化和反序列化代码实例

    2022-04-05 22:24:08
  • RestTemplate Get请求实现bean参数传递详解

    2022-03-14 22:20:27
  • asp之家 软件编程 m.aspxhome.com