Flutter 增加 Switch 的高度和宽度?

问题描述 投票:0回答:7

我创建单人和两名玩家的游戏。对于选择,我想要幻灯片外观,所以我尝试使用 switch 方法,但它看起来很小。如何增加开关的高度和宽度?有什么方法可以创建这样受欢迎的外观吗?

    new Center(
      child:
      new Padding(padding:EdgeInsets.all(50.00),
          child:
        new Column(
        mainAxisSize: MainAxisSize.max,
          children: <Widget>[
            new Switch(value: _value, onChanged: (bool value1)

            {
              _value=value1;

            },
              materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
              activeThumbImage: new AssetImage("assets/Images/1.png"),
              inactiveThumbImage: new AssetImage("assets/Images/1.png"),

            )
          ],
        )           ,
     ),
    )

enter image description here

flutter flutter-layout flutter-dependencies flutter-animation
7个回答
101
投票

您可以将

Switch
包裹在
Transform
小部件中并更改比例。

        Transform.scale(scale: 2.0,
                 child: Switch(
                          value: true,
                          onChanged: (bool value1){},
                        ),
                 )

Scale = 1 是默认尺寸,0.5 半尺寸,2.0 双尺寸,您可以使用这些值:)

更新

现在您也可以使用

SizedBox
+
FittedBox

来完成此操作
SizedBox(
        width: 150,
        height: 40,
        child: FittedBox(
          fit: BoxFit.fill,
          child: Switch(
            value: true,
            onChanged: (bool value1) {},
          ),
        ),
      ),

不要忘记

BoxFit.fill
值:)


3
投票

尝试CupertinoSwitch,您可以复制粘贴运行下面的完整代码 您可以使用

Transform.scale
并设置
scale
,1表示正常尺寸,0.8表示较小尺寸

Transform.scale(
  scale: 0.8,
  child: CupertinoSwitch(
    value: _switchValue,
    onChanged: (bool value) {
      setState(() {
        switchValue = value;
      });
    },
  ),
)

2
投票

如果您想控制高度和宽度,则使用比例接受的答案将增加高度和宽度

像这样使用它

          SizedBox(
            width: 50,
            height: 30,
            child: FittedBox(
              fit: BoxFit.fill,
              child: Switch(
                onChanged: (bool value) {
                },
              ),
            ),
          )
    

0
投票

您可以将 Switch 小部件包装在 SizedBox 内,并为其设置宽度和高度。

SizedBox(
  width: 80,
  height: 40,
  child: Switch(
    value: isChecked,
    onChanged: (value) {
      //Do you things
    }
  )
)

0
投票

只是在这里为@diegovoper的答案投票,但我没有足够的信任来投票。

我今天遇到了同样的尺寸问题,并尝试了 SizedBox(没有 BoxFit.fill),所以来寻找解决方案。 Transform.scale 非常有用。


-4
投票

您应该将switch放入容器内,并根据您的要求指定高度和宽度。


-6
投票

您可以简单地使用到处都更兼容的Container。

颤抖

Container(
                height: //whatever you want
                widget: //whatever you want
                child: Switch(
                    value: true, 
                    onChanged: (){

                }),
              )
© www.soinside.com 2019 - 2024. All rights reserved.