現象:在PageView TabView等可橫劃組件中,WebView的垂直手勢不靈敏。
創(chuàng)新互聯專注于雜多企業(yè)網站建設,響應式網站開發(fā),商城網站開發(fā)。雜多網站建設公司,為雜多等地區(qū)提供建站服務。全流程按需策劃,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯專業(yè)和態(tài)度為您提供的服務
解決方案:
指定WebView只處理垂直手勢。
參考鏈接:
??在最近做的一個Flutter項目中,需要用到手勢、指紋解鎖,這種需求在原生應用中非常常見,但Flutter中手勢密碼解鎖現有庫比較少、官方也僅提供有一個 local_auth 指紋庫,所以就自己寫了個手勢庫。
??其實實現這個自定義的手勢控件有很多思路,首先想到的是,要在View中創(chuàng)建9個圓,那么使用GridView再合適不過了,但是經過嘗試,放棄了,這會使交互跟邏輯變的更加復雜,所以還是選擇直接繼承Widget,自己處理邏輯與手勢,那么下面就是需要處理的邏輯:
由于官方插件庫已經提供有 local_auth 庫,在這里就不大贅述,具體使用就參考Flutter官方local_auth插件庫。
??如果在使用過程遇到問題,歡迎下方留言交流。
?? Pub 庫地址
相信在方法當中,我們都會遇到讓組件有拖拽效果的需求。在 Flutter 當中怎么實現拖拽需求呢?這篇博客分享關于 拖拽手勢 的知識,希望對看文章的小伙伴有所啟發(fā)。
拖拽手勢 是指用戶在長按屏幕的時候,移動手指的手勢。會細分成:
我們可以理解成用戶在觸碰到屏幕的那一刻處于 按下 ,之后有可能觸發(fā) 移動 手勢,最后 抬起 離開屏幕,這就是完整的手勢。
在 GestureDetector 當中,拖拽手勢分為2種:
描述了屏幕上指針(觸摸、鼠標、觸控筆)的位置和移動。
Flutter中可以使用Listener(功能性組件)來監(jiān)聽原始觸摸事件
例1
例2
例3
忽略PointerEvent
手勢: 描述由一個或多個指針移動組成的語義動作,如拖動、縮放、雙擊等。
Material大多數widget已經對tap或手勢做出了響應。 例如 IconButton和 FlatButton 響應單擊,ListView響應滑動事件觸發(fā)滾動。
用于手勢識別的功能性組件,通過它可以來識別各種手勢。
例(單擊)
例(添加Material觸摸水波效果 InkWell組件)
例(滑動關閉 Dismissable組件)
例(單擊、雙擊、長按)
例(滑動)
例(掃動---單一方向)
例(縮放)
GestureRecognizer是一個抽象類。
一種手勢的識別器對應一個GestureRecognizer的子類。
例
由于手勢競爭最終只有一個勝出者,所以,當有多個手勢識別器時,可能會產生沖突。
例
例
在APP中經常會需要一個廣播機制,用以跨頁面通知。比如一個需要登錄的APP中,頁面會關注用戶登錄或注銷事件,來進行一些狀態(tài)更新。
這時候,一個事件總線便會非常有用,事件總線通常實現了訂閱者模式,訂閱者模式包含發(fā)布者和訂閱者兩種角色,可以通過事件總線來觸發(fā)事件和監(jiān)聽事件。
對于一些簡單的應用,事件總線是足以滿足業(yè)務需求的,如果決定使用狀態(tài)管理包的話,一定要想清楚APP是否真的有必要使用它,防止“化簡為繁”、過度設計。
例
在widget樹中,每一個節(jié)點都可以分發(fā)通知,通知會沿著當前節(jié)點向上傳遞,所有父節(jié)點都可以通過NotificationListener來監(jiān)聽通知。
Flutter中將這種由子向父的傳遞通知的機制稱為通知冒泡(Notification Bubbling)。
通知冒泡和用戶觸摸事件冒泡是相似的,但有一點不同:通知冒泡可以中止,但用戶觸摸事件不行。
通知冒泡和Web開發(fā)中瀏覽器事件冒泡原理是相似的,都是事件從出發(fā)源逐層向上傳遞,可以在上層節(jié)點任意位置來監(jiān)聽通知/事件,也可以終止冒泡過程,終止冒泡后,通知將不會再向上傳遞。
Flutter的UI框架實現中,除了在可滾動組件在滾動過程中會發(fā)出ScrollNotification之外,還有一些其它的通知,如SizeChangedLayoutNotification、KeepAliveNotification 、LayoutChangedNotification等,Flutter正是通過這種通知機制來使父元素可以在一些特定時機來做一些事情。
例
例
例
阻止冒泡
通知冒泡原理
本文標題:flutter手勢的簡單介紹
網址分享:http://jinyejixie.com/article2/dssepic.html
成都網站建設公司_創(chuàng)新互聯,為您提供網站改版、微信小程序、Google、全網營銷推廣、定制網站、網站設計公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯