UIWidgets icon indicating copy to clipboard operation
UIWidgets copied to clipboard

切scene後,獲取虛擬鍵盤高度值為零

Open MingBow opened this issue 5 years ago • 2 comments
trafficstars

個人測試中使用了兩個scene做場景的切換,scene1跟scene2, scene1跟scene2各擺放一個按鈕做場景切換, 並在scene1最下方,另外擺放了uiwidgets的TextField widget做獲取虛擬鍵盤高度測試, 另外我想要在場景切換時TextField不被destroy, 所以使用了DontDestroyOnLoad讓TextField一直保持存在, 當我啟動程式時,預設為scene1, 這時點擊TextField時可獲取虛擬鍵盤高度,並把TextField往上推, 關閉虛擬鍵盤時,TextField會回到原位, 這時再點擊切換場景按鈕,切換到scene2, 此時點擊TextField並獲取虛擬鍵盤高度值為零(有印log), 我是使用MediaQuery.of(this.context).viewInsets.bottom來獲取虛擬鍵盤高度。 只要切過scene後,MediaQuery.of(this.context).viewInsets.bottom取得的值都會是零, 不知有何方式可解決?

MingBow avatar May 28 '20 09:05 MingBow

Hi 您好,多谢您的反馈!看起来可能和DontDestroyOnLoad有关,我们先查一下再给您反馈!

zhuxingwei avatar Jun 18 '20 10:06 zhuxingwei

關於這問題,我後來發現uiwidgets會建一個__UIWidgetsMessageManager在場景中,在切場景時會被刪除,後來我的作法是也把__UIWidgetsMessageManager加入到DontDestroyOnLoad來解決。

MingBow avatar Jun 19 '20 01:06 MingBow