【问题标题】:How to manage native looks of switch widget in flutter如何在颤动中管理开关小部件的原生外观
【发布时间】:2020-02-07 17:10:44
【问题描述】:
我想在 Flutter/Dart 中创建具有不同操作系统的原生外观的切换/切换小部件。
我的意思是,如果我在 iOS 移动设备上运行,它应该看起来像:
如果我在 Android 手机上运行,它应该是这样的:
帮我在flutter/dart中实现这类功能
【问题讨论】:
标签:
flutter
dart
flutter-layout
【解决方案1】:
使用Switch.adaptive
如果目标平台是 iOS,则创建 CupertinoSwitch,否则创建 Material Design 开关。
Switch.adaptive(value: true, onChanged: (newValue) {})
示例代码:
bool _value = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Switch.adaptive(
value: _value,
onChanged: (newValue) => setState(() => _value = newValue),
),
);
}
【解决方案2】:
您可以检查用户在哪个平台上,然后显示适当的特定于平台的小部件。 Switch 是用于切换的 Android 小部件,CupertinoSwitch 是 iOS 等价物。两个小部件的参数相同,因此 CopsOnRoad 的解决方案更加简洁,但这是获取特定于平台的小部件的另一种方式。
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'dart:io';
Platform.isAndroid ? Switch() : CupertinoSwitch()