Как настроить переключатель так, чтобы круг во Флаттере был относительно меньше? - PullRequest
0 голосов
/ 23 сентября 2019

Это обязательный переключатель Требуемый / ожидаемый переключатель

Я использую виджет Переключатель флаттера, чтобы сделать это, но я не могу приблизиться к требуемому переключателю.Использование Transform для увеличения размера коммутатора, но увеличивает размер всего коммутатора.Любые идеи относительно того, как я могу соответствовать изображению, данному?Вот где я нахожусь: Где я нахожусь на

1 Ответ

0 голосов
/ 23 сентября 2019

Виджет Switch использует адаптивный режим, и если вы проверите исходный код, вы найдете что-то вроде этого:

  @override
  Widget build(BuildContext context) {
    switch (widget._switchType) {
      case _SwitchType.material:
        return buildMaterialSwitch(context);

      case _SwitchType.adaptive: {
        final ThemeData theme = Theme.of(context);
        assert(theme.platform != null);
        switch (theme.platform) {
          case TargetPlatform.android:
          case TargetPlatform.fuchsia:
            return buildMaterialSwitch(context);
          case TargetPlatform.iOS:
            return buildCupertinoSwitch(context);
        }
      }
    }
    assert(false);
    return null;
  }
}

Он будет использовать метод buildMaterialSwitch для Android иbuildCupertinoSwitch для iOS.

Проверка метода buildCupertinoSwitch:

  Widget buildCupertinoSwitch(BuildContext context) {
    final Size size = getSwitchSize(Theme.of(context));
    return Container(
      width: size.width,  // Same size as the Material switch.
      height: size.height,
      alignment: Alignment.center,
      child: CupertinoSwitch(
        dragStartBehavior: widget.dragStartBehavior,
        value: widget.value,
        onChanged: widget.onChanged,
        activeColor: widget.activeColor,
      ),
    );
  }

Это ключ, тогда вы должны использовать CupertinoSwitch widget :), просто не забудьтедобавить импорт:

import 'package:flutter/cupertino.dart';
...