74 votes

Flutter affiche-t-il automatiquement l'interface utilisateur de Cupertino dans iOS et Material dans Android avec une seule base de code?

J'ai besoin de savoir si Flutter rendra le style iOS Cupertino sur iOS et Material sur Android avec une seule base de code. Je veux le savoir avant de commencer à développer mon application avec Flutter.

Si ce n'est pas le cas, comment gérerais-je les deux interfaces utilisateur différentes en un seul code? Je ne peux pas utiliser if / else partout dans le code.

1voto

AleksTi Points 154

Ci-dessous une mise en œuvre simple:

 class AdaptiveSwitch extends StatelessWidget {
  const AdaptiveSwitch({Key key,
      @required this.value,
      @required this.onChanged,
      this.activeColor,
      this.dragStartBehavior = DragStartBehavior.start})
      : assert(dragStartBehavior != null),
        super(key: key);

  final bool value;

  final ValueChanged<bool> onChanged;

  final Color activeColor;

  final DragStartBehavior dragStartBehavior;

  @override
  Widget build(BuildContext context) {
    return Theme.of(context).targetPlatform = TargetPlatform.iOS
        ? CupertinoSwitch(
            value: value,
            activeColor: activeColor,
            onChanged: onChanged,
            dragStartBehavior: dragStartBehavior,
          )
        : Switch(
            value: value,
            activeColor: activeColor,
            onChanged: onChanged,
            dragStartBehavior: dragStartBehavior,
          );
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X