Flutter 升起按钮时溢出1.0像素-抖动

Flutter 升起按钮时溢出1.0像素-抖动,flutter,flutter-layout,Flutter,Flutter Layout,我正试图为我的家庭自动化项目个人化一个RaisedButton中的内容,在这个按钮中添加不同类型的文本和图标。但由于某种原因,我得到了1像素的溢出 ClipRRect( borderRadius: BorderRadius.circular(10), child: SizedBox( width: 90.0, height: 90.0, chil

我正试图为我的家庭自动化项目个人化一个RaisedButton中的内容,在这个按钮中添加不同类型的文本和图标。但由于某种原因,我得到了1像素的溢出

ClipRRect(
              borderRadius: BorderRadius.circular(10),
              child: SizedBox(
                width: 90.0,
                height: 90.0,
                child: RaisedButton(
                  onPressed: () {},
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.start,
                    children: <Widget>[
                      Icon(Icons.stay_primary_portrait),
                      Column(
                        mainAxisAlignment: MainAxisAlignment.start,
                        children: <Widget>[
                          Padding(
                            padding: EdgeInsets.only(left: 0),
                            child: Text('Lock'),
                          ),
                          Padding(
                            padding: EdgeInsets.only(left: 0),
                            child: Text('100%'),
                          ),
                        ],
                      ),
                    ],
                  ),
                ),
              ),
            ),
ClipRRect(
边界半径:边界半径。圆形(10),
孩子:大小盒子(
宽度:90.0,
身高:90.0,
孩子:升起按钮(
按下:(){},
孩子:排(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
图标(图标。保持为主图标),
纵队(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
填充物(
填充:仅限边设置(左:0),
子项:文本('Lock'),
),
填充物(
填充:仅限边设置(左:0),
子项:文本(“100%”),
),
],
),
],
),
),
),
),
应用程序:

我不明白为什么会得到这个结果,但您可以使用InkWell+容器而不是RaisedButton:

ClipRRect(
                    borderRadius: BorderRadius.circular(10),
                    child: SizedBox(
                      width: 90.0,
                      height: 90.0,
                      child: InkWell(
                        onTap: () {},
                        child: Container(
                          color: Colors.grey,
                          child: Row(
                            mainAxisAlignment: MainAxisAlignment.start,
                            children: <Widget>[
                              Icon(Icons.stay_primary_portrait),
                              Column(
                                mainAxisAlignment: MainAxisAlignment.start,
                                children: <Widget>[
                                  Padding(
                                    padding: EdgeInsets.only(left: 0),
                                    child: Text('Lock'),
                                  ),
                                  Padding(
                                    padding: EdgeInsets.only(left: 0),
                                    child: Text('100%'),
                                  ),
                                ],
                              ),
                            ],
                          ),
                        ),
                      ),
                    ),
                  ),
ClipRRect(
边界半径:边界半径。圆形(10),
孩子:大小盒子(
宽度:90.0,
身高:90.0,
孩子:InkWell(
onTap:(){},
子:容器(
颜色:颜色。灰色,
孩子:排(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
图标(图标。保持为主图标),
纵队(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
填充物(
填充:仅限边设置(左:0),
子项:文本('Lock'),
),
填充物(
填充:仅限边设置(左:0),
子项:文本(“100%”),
),
],
),
],
),
),
),
),
),

我不明白为什么会得到这个结果,但您可以使用InkWell+容器而不是RaisedButton:

ClipRRect(
                    borderRadius: BorderRadius.circular(10),
                    child: SizedBox(
                      width: 90.0,
                      height: 90.0,
                      child: InkWell(
                        onTap: () {},
                        child: Container(
                          color: Colors.grey,
                          child: Row(
                            mainAxisAlignment: MainAxisAlignment.start,
                            children: <Widget>[
                              Icon(Icons.stay_primary_portrait),
                              Column(
                                mainAxisAlignment: MainAxisAlignment.start,
                                children: <Widget>[
                                  Padding(
                                    padding: EdgeInsets.only(left: 0),
                                    child: Text('Lock'),
                                  ),
                                  Padding(
                                    padding: EdgeInsets.only(left: 0),
                                    child: Text('100%'),
                                  ),
                                ],
                              ),
                            ],
                          ),
                        ),
                      ),
                    ),
                  ),
ClipRRect(
边界半径:边界半径。圆形(10),
孩子:大小盒子(
宽度:90.0,
身高:90.0,
孩子:InkWell(
onTap:(){},
子:容器(
颜色:颜色。灰色,
孩子:排(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
图标(图标。保持为主图标),
纵队(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
填充物(
填充:仅限边设置(左:0),
子项:文本('Lock'),
),
填充物(
填充:仅限边设置(左:0),
子项:文本(“100%”),
),
],
),
],
),
),
),
),
),

RaisedButton有一些默认的填充。通过删除默认填充来修复它。 这将完美地工作,检查它

     ClipRRect(
          borderRadius: BorderRadius.circular(10),
          child: SizedBox(
            width: 90.0,
            height: 90.0,
            child: RaisedButton(
              // remove the default padding the raised button has 
              padding: EdgeInsets.zero,
              onPressed: () {},
              child: Row(
                mainAxisAlignment: MainAxisAlignment.start,
                children: <Widget>[
                  Icon(Icons.stay_primary_portrait),
                  Column(
                    mainAxisAlignment: MainAxisAlignment.start,
                    children: <Widget>[
                      Padding(
                        padding: EdgeInsets.only(left: 0),
                        child: Text('Lock'),
                      ),
                      Padding(
                        padding: EdgeInsets.only(left: 0),
                        child: Text('100%'),
                      ),
                    ],
                  ),
                ],
              ),
            ),
          ),
        ),
ClipRRect(
边界半径:边界半径。圆形(10),
孩子:大小盒子(
宽度:90.0,
身高:90.0,
孩子:升起按钮(
//删除凸起按钮的默认填充
填充:EdgeInsets.zero,
按下:(){},
孩子:排(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
图标(图标。保持为主图标),
纵队(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
填充物(
填充:仅限边设置(左:0),
子项:文本('Lock'),
),
填充物(
填充:仅限边设置(左:0),
子项:文本(“100%”),
),
],
),
],
),
),
),
),
输出如下所示

RaisedButton有一些默认的填充。通过删除默认填充来修复它。 这将完美地工作,检查它

     ClipRRect(
          borderRadius: BorderRadius.circular(10),
          child: SizedBox(
            width: 90.0,
            height: 90.0,
            child: RaisedButton(
              // remove the default padding the raised button has 
              padding: EdgeInsets.zero,
              onPressed: () {},
              child: Row(
                mainAxisAlignment: MainAxisAlignment.start,
                children: <Widget>[
                  Icon(Icons.stay_primary_portrait),
                  Column(
                    mainAxisAlignment: MainAxisAlignment.start,
                    children: <Widget>[
                      Padding(
                        padding: EdgeInsets.only(left: 0),
                        child: Text('Lock'),
                      ),
                      Padding(
                        padding: EdgeInsets.only(left: 0),
                        child: Text('100%'),
                      ),
                    ],
                  ),
                ],
              ),
            ),
          ),
        ),
ClipRRect(
边界半径:边界半径。圆形(10),
孩子:大小盒子(
宽度:90.0,
身高:90.0,
孩子:升起按钮(
//删除凸起按钮的默认填充
填充:EdgeInsets.zero,
按下:(){},
孩子:排