欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

懸浮flutter,懸浮球

一文解決Flutter中使用TextField遇到的各種疑難雜癥

可以使用 SingleChildScrollView 包裹布局

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括陽原網(wǎng)站建設(shè)、陽原網(wǎng)站制作、陽原網(wǎng)頁制作以及陽原網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,陽原網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到陽原省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

這里還需要了解一個(gè) Scaffold 中的一個(gè)屬性 resizeToAvoidBottomInset

官方文檔給出的解釋就是處理鍵盤遮擋問題,默認(rèn)是 true,如果不希望頂起需要設(shè)置為 false。

在 sdk 低版本的時(shí)候是使用 resizeToAvoidBottomPadding 需要將其設(shè)置為 false,現(xiàn)在已經(jīng)棄用。但網(wǎng)上很多文章還沒有改正,仍然用的 resizeToAvoidBottomPadding。

分兩種情況

一種是使用系統(tǒng)的返回鍵,比如 android 底部導(dǎo)航自帶的返回,

另一種是使用導(dǎo)航欄自定義的返回鍵

第一種情況需要在頁面根布局使用 WillPopScope 在 onWillPop 中攔截返回處理。

原理都是通過判斷輸入框是否獲取了焦點(diǎn)

當(dāng)?shù)撞坑泄潭ǖ慕M件,比如提交按鈕,我們?cè)阪I盤彈起的時(shí)候希望按鈕貼著鍵盤頂部固定,但是中間滾動(dòng)視圖可以自由滾動(dòng)

可以在 SingleChildScrollView 外部再使用 Stack 包裹,懸浮按鈕使用 Positioned 定位,

還要??注意要給滾動(dòng)組件底部留出距離防遮擋,同時(shí)還有動(dòng)態(tài)加上 bottomBar 的高度,因?yàn)樵?iphoneX 以上的手機(jī),會(huì)有個(gè)虛擬按鍵,如果不加上該按鍵高度,同樣會(huì)被遮擋

高度獲取方法: MediaQuery.of(context).padding.bottom

在 showDialog 布局中使用 Scaffold 包裹,不要忘了將 backgroundColor 設(shè)為透明。

如果彈窗過高,還是需要將高度固定,然后使用 SingleChildScrollView ,彈窗中同樣也可以在執(zhí)行關(guān)閉的時(shí)候攔截,判斷鍵盤是否彈起,如果彈起則要先關(guān)閉鍵盤。

給所有輸入框綁定 FoucusNode

在 maxLines=1 的情況下,輸入框不支持換行,換行按鈕會(huì)變成 done

監(jiān)聽 onEditingComplete 方法

根布局使用 GestureDetector 或者 InkWell 包裹,點(diǎn)擊的時(shí)候收起鍵盤。

最后要記得銷毀

Flutter 手勢(shì)系列教程---Listener

Listener 它是主要的功能是用來監(jiān)聽屏幕觸摸事件,取決于它的子組件區(qū)域范圍,比如按下、移動(dòng)、抬起、取消等操作時(shí)可以添加監(jiān)聽。

我們知道 Flutter 組件只有按鈕才會(huì)有事件,那么如果我需要在文字或者某個(gè)容器上添加事件那我就需要借助 Listener

手勢(shì)系列視頻教程地址

Listener 常用于當(dāng)手指滑動(dòng)屏幕時(shí)進(jìn)行隱藏鍵盤或者下拉刷新、上拉加載時(shí)進(jìn)行事件監(jiān)聽。

一般在實(shí)際的開發(fā)過程中我們很少會(huì)用到 Listener 來監(jiān)聽手勢(shì),一般都是通過 GestureDetector 來進(jìn)行監(jiān)聽或者使用 MouseRegion 來監(jiān)聽鼠標(biāo)的事件,而 MouseRegion 常用于web開發(fā)中, GestureDetector 常用于app。

我們經(jīng)常使用的回調(diào)函數(shù)主要有三個(gè)

我們這里主要是針對(duì) onPointerDown 、 onPointerMove 、 onPointerUp 進(jìn)行演示,因?yàn)槲覀冊(cè)谄綍r(shí)的開發(fā)過程中最常用到的屬性就是這三個(gè),而且其他的屬性也都被廢棄掉了。

我們這里先點(diǎn)擊橙色容器,在點(diǎn)擊一次紅色容器,他們打印的結(jié)果如下。

PointerEvent 是觸摸、手寫筆、鼠標(biāo)事件的基類。

在上文中,我們知道了什么是 Listener 并寫了一個(gè)簡(jiǎn)單的案例,在使用案例的過程中我們的事件里面都帶了一個(gè) event 參數(shù),而所有的事件最終都是繼承自 PointerEvent ,那我們接下來看看 event 的參數(shù)有什么作用。

PointerEvent 的屬性非常多,但在我們實(shí)際的開發(fā)過程中很少會(huì)使用到,只有在特定的情景下才會(huì)使用對(duì)應(yīng)的屬性。

如需要做一個(gè)全局懸浮的按鈕我們會(huì)使用到 position

如需要做繪圖軟件我們需要用到 buttons 、 kind 等

所以大家可以根據(jù)實(shí)際的應(yīng)用場(chǎng)景來使用對(duì)應(yīng)的屬性即可,下面是我對(duì) PointerEvent 的屬性進(jìn)行的一個(gè)詳細(xì)描述。

behavior 屬性,它決定子組件如何響應(yīng)命中測(cè)試,它的值類型為 HitTestBehavior ,這是一個(gè)枚舉類,有三個(gè)枚舉值

對(duì)子組件一個(gè)接一個(gè)的進(jìn)行命中測(cè)試,如果子組件中有測(cè)試通過的,則當(dāng)前組件通過,這就意味著,如果指針事件作用于子組件上時(shí),其父級(jí)組件也肯定可以收到該事件。

在命中測(cè)試時(shí),將當(dāng)前組件當(dāng)成不透明處理(即使本身是透明的),最終的效果相當(dāng)于當(dāng)前Widget的整個(gè)區(qū)域都是點(diǎn)擊區(qū)域

點(diǎn)擊組件透明區(qū)域時(shí),可以對(duì)自身邊界內(nèi)及底部可視區(qū)域都進(jìn)行命中測(cè)試,這意味著點(diǎn)擊頂部組件透明區(qū)域時(shí),頂部組件和底部組件都可以接收到事件

我們這里演示每次都是先點(diǎn)擊綠色盒子在點(diǎn)擊文字,以便大家能更好的分辨出這三個(gè)屬性的使用區(qū)別

Listener 是 Flutter 中比較重要的功能性組件,它主要的功能是用來監(jiān)聽屏幕觸摸事件,事件回調(diào)可以獲取對(duì)應(yīng)的屬性來個(gè)性化定制app功能。

flutter- 全局懸浮可拖動(dòng)的Widget

那天,產(chǎn)品經(jīng)理說“我在微信朋友圈里點(diǎn)了別人分享出來的歌曲鏈接 聽了會(huì)歌 那歌簡(jiǎn)直了 好聽 退到聊天界面 出現(xiàn)了個(gè)懸浮的歌曲圖標(biāo) 那我們能不能做類似的 在所有頁面都會(huì)存在這樣一個(gè)懸浮圖標(biāo) 這個(gè)圖標(biāo)目前要有打客服電話功能”。

我一心想,這人真會(huì)搞事 哈哈。行 滿足他

事實(shí)上有一個(gè)Overlay的widget,它的createState方法獲取的就是OverlayState對(duì)象.

Overlay可以認(rèn)為是一個(gè)UI上面的蒙版/浮空層,使用起來類似Stack;

文章題目:懸浮flutter,懸浮球
本文網(wǎng)址:http://chinadenli.net/article9/dsgedih.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)網(wǎng)站制作用戶體驗(yàn)全網(wǎng)營銷推廣建站公司定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)