UnityTech / UIWidgets

UIWidget is a Unity Package which helps developers to create, debug and deploy efficient, cross-platform Apps.
Other
1.97k stars 256 forks source link

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

Open MingBow opened 4 years ago

MingBow commented 4 years ago

個人測試中使用了兩個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取得的值都會是零, 不知有何方式可解決?

zhuxingwei commented 4 years ago

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

MingBow commented 4 years ago

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