【问题标题】: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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2021-06-17
      相关资源
      最近更新 更多