Flutter中的水平按钮组

时间:2019-08-15 12:29:05

标签: user-interface flutter dart

我正在尝试使用flutter建立一个水平按钮组,但是我没有达到期望的程度,在使用dart构建UI时我是一个新手,我如何调整代码以实现期望的结果?

下面您会发现我当前的进度和期望的结果!

当前按钮行

//Horizontal buttons row    
            Wrap(                  
              direction: Axis.horizontal,
              children: <Widget>[
                ButtonTheme(
                  minWidth: 40.0,
                  child: RaisedButton(
                    color: Colors.white,
                    onPressed: () {},
                    child: Text("A"),
                  ),
                ),
                ButtonTheme(
                  minWidth: 40.0,
                  child: RaisedButton(
                    color: Colors.white,
                    onPressed: () {},
                    child: Text("B"),
                  ),
                ),
                ButtonTheme(
                  minWidth: 40.0,
                  child: RaisedButton(
                    color: Colors.white,
                    onPressed: () {},
                    child: Text("C"),
                  ),
                ),
                ButtonTheme(
                  minWidth: 40.0,
                  child: RaisedButton(
                    color: Colors.white,
                    onPressed: () {},
                    child: Text("D"),
                  ),
                ),
                ButtonTheme(
                  minWidth: 40.0,
                  child: RaisedButton(
                    color: Colors.white,
                    onPressed: () {},
                    child: Text("E"),
                  ),
                ),
                ButtonTheme(
                  minWidth: 40.0,                     
                  child: RaisedButton(
                    color: Colors.white,
                    onPressed: () {},
                    child: Text("F"),
                  ),
                ),
                ButtonTheme(
                  minWidth: 40.0,
                  child: RaisedButton(
                    color: Colors.white,
                    onPressed: () {},
                    child: Text("G"),
                  ),
                ),                        
              ],
            )

给出的结果: enter image description here

所需结果 enter image description here

3 个答案:

答案 0 :(得分:3)

您可以使用在Web和桌面https://api.flutter.dev/flutter/material/ToggleButtons-class.html

中更易于访问且与tabindex兼容的ToggleButtons

https://www.youtube.com/watch?v=kVEguaQWGAY

答案 1 :(得分:1)

这是我的做法:

Widget specialCharsPanel() {
  return Container(
    child: Material(
      elevation: 4.0,
      borderRadius: BorderRadius.all(Radius.circular(6.0)),
      child: Wrap( 
        direction: Axis.horizontal,                    
        children: <Widget>[
          SpecialChar("A"),
          SpecialChar("B"),
          SpecialChar("C"),
          SpecialChar("D"),
          SpecialChar("E"),
          SpecialChar("F"),
          SpecialChar("G"),                 
        ],
      ),
    ),
  );
}

答案 2 :(得分:0)

您可以用RaisedButton而不是Container来包装ButtonTheme,这将为您提供所需的输出。