iOSとAndroidでUIが若干異なるはずですが、実行中のものを検出する方法が必要ですが、ドキュメントで見つけられませんでした。それは何ですか?このコードラボに示すように、あなたはDartコードからホストプラットフォームをどのように検出しますか?
defaultTargetPlatform == TargetPlatform.iOS
? kIOSTheme
: kDefaultTheme,
を行うことができます
iOSとAndroidでUIが若干異なるはずですが、実行中のものを検出する方法が必要ですが、ドキュメントで見つけられませんでした。それは何ですか?このコードラボに示すように、あなたはDartコードからホストプラットフォームをどのように検出しますか?
defaultTargetPlatform == TargetPlatform.iOS
? kIOSTheme
: kDefaultTheme,
を行うことができます
defaultTargetPlatform
は動作しますが、私はTheme.of(context).targetPlatform
を使用してお勧めします。これにより、iOSの動作テストが可能になります(テストではdefaultTargetPlatform
は常にTargetPlatform.android
なので)。また、ウィジェットの祖先は、Theme
ウィジェットでラップすることで、ターゲットプラットフォームを上書きすることができます。コリンへ
おかげで、最終的な答えは次のとおりです。
final ios = Theme.of(context).platform == TargetPlatform.iOS;
この回答のみが最新のFlutterフレームワークで最新です。残りの答えは間違っていませんが、defaultTargetPlatformはもはやフレームワークの一部ではないようです – Sniper
私は何を提案し、この '場合(Platform.isIOS){//私のiOSウィジェット}' ' – aziza
との違いは何ですか聞いてもPlatform.isIOS'には 'defaultTargetPlatform'と同じ問題があります。テストでは動作せず、 'Theme'ウィジェットで上書きすることもできません。 –