无法删除Wrap小部件上的垂直填充或边距

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

这就是我在屏幕上看到的内容。

enter image description here

我希望红色FlatButton在顶部,底部或它们之间没有垂直间距。唯一可见的黄色应该是它们之间的水平空间。

这是生成此Widget的代码:

Widget _buildSelectedFriendsRow() {
    var widgets = List<Widget>();
    selectedFriends.forEach((friend) {
        widgets.add(
            FlatButton(
                child: Wrap(
                    alignment: WrapAlignment.start,
                    crossAxisAlignment: WrapCrossAlignment.center,
                    children: <Widget>[
                        Text("${friend.firstName} ${friend.lastName}",
                        ),
                        Icon(
                            Icons.close
                        ),

                    ],
                ),
                color: Colors.red,
                padding: EdgeInsets.all(0.0),
                onPressed: () {
                    _unselectFriend(friend);
                },
            )
        );
    });

    Widget widget = Padding(
        padding: EdgeInsets.only(left: 10.0),
        child: Container(
            margin: EdgeInsets.all(0),
            padding: EdgeInsets.all(0),
            decoration: BoxDecoration(
                color: Colors.yellow,
                border: Border.all(color: Colors.black),
            ),
            child: Wrap(
                alignment: WrapAlignment.start,
                spacing: 10.0,
                runSpacing: 0.0,
                children: widgets,
            ),
        ),
    );

    return widget;
}

谢谢。

dart flutter
1个回答
2
投票

如果你不需要,请不要使用FlatButton,尝试使用InkWellContainer

改变这个:

    FlatButton(
                    child: Wrap(
                        alignment: WrapAlignment.start,
                        crossAxisAlignment: WrapCrossAlignment.center,
                        children: <Widget>[
                            Text("${friend.firstName} ${friend.lastName}",
                            ),
                            Icon(
                                Icons.close
                            ),

                        ],
                    ),
                    color: Colors.red,
                    padding: EdgeInsets.all(0.0),
                    onPressed: () {
                        _unselectFriend(friend);
                    },
                )

对此:

    Material(
    color: Colors.red,
     InkWell(
            child: Container(
              child: Wrap(
                        alignment: WrapAlignment.start,
                        crossAxisAlignment: WrapCrossAlignment.center,
                        children: <Widget>[
                            Text("${friend.firstName} ${friend.lastName}",
                            ),
                            Icon(
                                Icons.close
                            ),

                        ],
                    ),
            ),
            onTap: () {
                _unselectFriend(friend);
            },
          ),  
      ),       
© www.soinside.com 2019 - 2024. All rights reserved.