對於在iOS和Android上應該略有不同的UI,必須有一種方法來檢測您正在運行哪一個,但我無法在文檔中找到它。這是什麼?如何從Dart代碼檢測主機平臺?
3
A
回答
2
你可以做
defaultTargetPlatform == TargetPlatform.iOS
? kIOSTheme
: kDefaultTheme,
如本程式碼實驗室:https://codelabs.developers.google.com/codelabs/flutter/index.html#0
5
雖然defaultTargetPlatform
會的工作,我會建議使用Theme.of(context).targetPlatform
。這樣可以測試iOS行爲(因爲defaultTargetPlatform
在測試中始終是TargetPlatform.android
)。它還允許您的小部件的祖先通過將其包裝在Theme
小部件中來覆蓋其目標平臺。
3
由於科林,最後的答案是:
final ios = Theme.of(context).platform == TargetPlatform.iOS;
+0
只有這個答案是最新的Flutter框架。其餘答案沒有錯,但defaultTargetPlatform似乎不再是框架的一部分 – Sniper
相關問題
- 1. Verilog測試平臺代碼
- 2. Dart代碼檢測可能嗎?
- 3. 從Linux虛擬機如何檢測/識別Azure平臺
- 4. DART用戶代理檢測
- 5. Excel加載項:如何檢測主機平臺是否爲「辦公室在線」
- 6. .NET平臺虛擬主機
- 7. 如何在Windows平臺上在Android上調試本機代碼
- 8. 如何在多個平臺上測試python代碼?
- 9. 從機如何自動檢測Solr主機上的新內核?
- 10. 平臺檢測在CMake的
- 11. 檢測用戶的平臺
- 12. 在Rust中檢測平臺
- 13. 檢測手機和平板電腦不工作的代碼
- 14. 我如何檢查Java代碼中的平臺驗證?
- 15. Windows 8.1如何檢測機器是臺式機還是平板電腦?
- 16. 如何使用Windbg從轉儲檢測平臺
- 17. 如何檢測主機中的文件
- 18. 從平臺代碼訪問android.provider.Settings.System的值
- 19. 如何檢測主應用程序是否從後臺代理運行
- 20. 如何檢測代碼中的7「Android平板電腦
- 21. 從Worklight客戶端代碼中檢測Worklight Server主機名/ IP地址
- 22. 將mysql從一臺主機遷移到另一臺主機,編碼問題
- 23. 如何從平臺特定的頭文件中提取代碼
- 24. 多平臺代碼生成
- 25. 跨平臺代碼爲appengine
- 26. 跨平臺代碼組織
- 27. 代碼審查平臺
- 28. OCR代碼在android平臺
- 29. 如何將Docker圖像從一臺主機複製到另一臺主機上?
- 30. GitHub主機源代碼如何?
請問是什麼建議的內容之間,這 '如果(Platform.isIOS){//我的iOS部件}'' – aziza
的區別Platform.isIOS'與'defaultTargetPlatform'具有相同的問題。它在測試中不起作用,不能被'Theme'小部件覆蓋。 –