網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
正文
就網(wǎng)絡(luò)和應(yīng)用程序而言,鍵盤(pán)快捷鍵很重要,今天我們要談的便是讓這類快捷鍵得以在Flutter運(yùn)作的小部件:Focus、Shortcuts和Action。
這套系統(tǒng)中的第一個(gè)小部件是Focus,小部件樹(shù)中到處都有它的蹤跡,包括按鈕個(gè)文本輸入在內(nèi)之類的用戶界面交互區(qū)塊
FocusNode對(duì)象
這個(gè)小部件還包含F(xiàn)ocusNode對(duì)象
Focus({
FocusNode? node,
Widget? child,
}) : node = node ?? FocusNode();
其作用是指示Flutter用戶交互理應(yīng)在代碼中出現(xiàn)的位置。
整體而言。這個(gè)Focus小部件的網(wǎng)絡(luò)及所屬的FocusNode會(huì)在您的Flutter應(yīng)用中構(gòu)成另一名為Focus樹(shù)的結(jié)構(gòu)
對(duì)此首先要知道的是節(jié)點(diǎn)永遠(yuǎn)被視為是作用中的,那作用中的FocusNodes有何涵義呢?
這代表實(shí)體鍵盤(pán)輸入這類的系統(tǒng)特殊事件,會(huì)首先出現(xiàn)在Focuss小部件中,當(dāng)中的FocusNode且在向頂部結(jié)構(gòu)送出推播通知錢(qián)都會(huì)維持作用中的狀態(tài)。
小部件樹(shù)向上傳送時(shí)會(huì)起到怎樣的作用呢
當(dāng)這些按鍵事件于小部件樹(shù)向上傳送時(shí)會(huì)起到怎樣的作用呢?
這些事件會(huì)搜尋按鍵所對(duì)應(yīng)的Shortcuts小部件并將之轉(zhuǎn)為意圖對(duì)象(intent),該對(duì)象起于作用中的FocusNodes并會(huì)持續(xù)朝應(yīng)用程序頂部浮現(xiàn)。
至于Focus小部件,其實(shí)Flutter框架所屬的按鈕和文本輸入之類的交互控件皆已包含所需的Focus小部件,不過(guò)哦有時(shí)候若您想要從頭規(guī)劃用戶體驗(yàn),可能就會(huì)想自行添加。
例如樣式的折疊卡片accordion,標(biāo)題應(yīng)以焦點(diǎn)處理設(shè)為Focusable,藉此顯示鍵盤(pán)快捷指令來(lái)切換面板的可見(jiàn)性。
要這樣做,得使用Accordion標(biāo)題小部件,并將其子級(jí)包裝在Focus小部件中,這是要為accordion小部件自定義鍵盤(pán)快捷鍵的第一步
Accordion(
children: <Widget>[
Header(
child: Focus(
child: Text('Section 1'),
),
),
Section1Body(),
],
)
請(qǐng)繼續(xù)鎖定作為第二和第三步,Shortcuts和Actions小部件的后續(xù)介紹
如果想了解有關(guān)Focus的內(nèi)容,或者關(guān)于Flutter的其他功能,請(qǐng)?jiān)L問(wèn)flutter.dev
原文鏈接:https://juejin.cn/post/7170924861760471048
相關(guān)推薦
- 2022-06-01 關(guān)于nginx?反向代理?URL替換方案_nginx
- 2023-02-17 GO項(xiàng)目實(shí)戰(zhàn)之Gorm格式化時(shí)間字段實(shí)現(xiàn)_Golang
- 2022-01-16 ES6新增聲明格式、變量解構(gòu)賦值及模板字符串
- 2023-02-27 pandas?pd.cut()與pd.qcut()的具體實(shí)現(xiàn)_python
- 2022-10-12 基于PyQt5實(shí)現(xiàn)狀態(tài)欄(statusBar)顯示和隱藏功能_python
- 2022-06-10 SQL?Server使用導(dǎo)出向?qū)Чδ躝MsSql
- 2022-10-02 C++?OpenCV實(shí)戰(zhàn)之手寫(xiě)數(shù)字識(shí)別_C 語(yǔ)言
- 2022-06-11 C#把EXCEL數(shù)據(jù)轉(zhuǎn)換成DataTable_C#教程
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支