2017-08-28 23 views

回答

5

雖然defaultTargetPlatform會的工作,我會建議使用Theme.of(context).targetPlatform。這樣可以測試iOS行爲(因爲defaultTargetPlatform在測試中始終是TargetPlatform.android)。它還允許您的小部件的祖先通過將其包裝在Theme小部件中來覆蓋其目標平臺。

+0

請問是什麼建議的內容之間,這 '如果(Platform.isIOS){//我的iOS部件}'' – aziza

+1

的區別Platform.isIOS'與'defaultTargetPlatform'具有相同的問題。它在測試中不起作用,不能被'Theme'小部件覆蓋。 –

3

由於科林,最後的答案是:

final ios = Theme.of(context).platform == TargetPlatform.iOS; 
+0

只有這個答案是最新的Flutter框架。其餘答案沒有錯,但defaultTargetPlatform似乎不再是框架的一部分 – Sniper