国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flutter 點擊輸入框后 鍵盤閃出后立刻消失

這篇具有很好參考價值的文章主要介紹了Flutter 點擊輸入框后 鍵盤閃出后立刻消失。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

flutter 在布局最頂端使用的是Scaffold組件,在點擊輸入框鍵盤彈出后,布局的默認反應是改變屏幕大小重新布局。

這時通常會在Scaffold中添加選項:

resizeToAvoidBottomPadding:false

添加之后,應用整體布局不會隨著鍵盤彈出而刷新改變。

但是鍵盤的彈出仍然會改變 MediaQuery.of(context).size獲取到的數(shù)值,因此如果有輸入框的父組件通過MediaQuery來決定自身大小的話,在鍵盤彈出的時候整個組件仍然會進行刷新導致鍵盤隱藏。

因為只考慮移動端,屏幕大小不會發(fā)生改變,所以考慮將屏幕大小提前保存成固定的數(shù)值。

import 'dart:ui';

//1.獲取屏幕物理大小

double physicalWidth = window.physicalSize.width;

double physicalHeight = window.physicalSize.height;

// 2.獲取dpr

double dpr = window.devicePixelRatio;

?// 3.寬度和高度

double screenWidth = physicalWidth / dpr;

double screenHeight = physicalHeight / dpr;

app啟動之前提前獲取好屏幕大小,在布局時直接引用,鍵盤彈出時就不會出現(xiàn)組件刷新導致鍵盤隱藏的問題。

-------------------------------------2022.5.27 更新----------------------------------------

額外補充一個奇怪的bug:

此bug只在IOS端出現(xiàn),同樣的代碼在安卓端不存在。iphone測試機為IOS 15.4.1。

主要表現(xiàn)為window.physicalSize返回的大小有時正確有時為0

可能導致的原因猜測為window.physicalSize調用的過早,通過延遲調用后bug解決。

//延遲0.5秒加載屏幕大小

Timer.periodic(Duration(milliseconds: 500), (timer) async {

? ? ? ?//獲取屏幕大小

????????timer.cancel()

});

?此bug會導致某些依賴屏幕大小的Widget隨機出現(xiàn)消失情況,bug非常隱蔽,幫大家避避坑。文章來源地址http://www.zghlxwxcb.cn/news/detail-494354.html

到了這里,關于Flutter 點擊輸入框后 鍵盤閃出后立刻消失的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包