如何为按钮右侧添加图像/图标?

Des*_*gha 4 flutter flutter-layout flutter-widget

这些天我正在为 Android 平台开发 Flutter 移动应用程序。我想添加一个带有文本图标/图像的按钮。该图像必须位于按钮文本的右侧。

我已经在这里附上了图片。

在此处输入图片说明

这是我的代码。

child: FlatButton.icon(
     icon: Image.asset("images/notesicon.png", width: 20.0,height: 20.0,),
     label: Text("Add Note",
        style: TextStyle(
           fontSize: 11.0,
           fontFamily: "Raleway"
        ),
     ),
     textColor: Colors.white,
     color: Color(0xFF226597),
     shape: OutlineInputBorder(borderSide: BorderSide(
               style: BorderStyle.solid,
               width: 1.0,
               color: Colors.black),
            borderRadius: new BorderRadius.circular(20.0)
      ),
    ),
Run Code Online (Sandbox Code Playgroud)

die*_*per 16

在这里,您的代码已修复,在这种情况下,不要FlatButton.icon仅使用FlatButton构造函数并添加自定义子项Row

    SizedBox(
            width: 150,
            child: FlatButton(
              child: Row(
                children: [
                  Text(
                    "Add Note",
                    style: TextStyle(fontSize: 11.0, fontFamily: "Raleway"),
                  ),
                  Image.asset(
                    "images/notesicon.png",
                    width: 20.0,
                    height: 20.0,
                  )
                ],
              ),
              onPressed: () {},
              textColor: Colors.white,
              color: Color(0xFF226597),
              shape: OutlineInputBorder(
                  borderSide: BorderSide(
                      style: BorderStyle.solid, width: 1.0, color: Colors.black),
                  borderRadius: new BorderRadius.circular(20.0)),
            ),
          ), 
Run Code Online (Sandbox Code Playgroud)

  • 当使用“Row”作为“FlatButton”的子级时,按钮总是尝试水平扩展,这可能很烦人。根据 `FlatButton.icon` 源代码,您可以在 `Row` 内使用 `mainAxisSize: MainAxisSize.min` 来防止其扩展。 (3认同)

pra*_*mar 13

只需翻转它们。(lable<->icon) 因为它们都接受任何小部件。

child: FlatButton.icon(
 icon: Text("Add Note",
    style: TextStyle(
       fontSize: 11.0,
       fontFamily: "Raleway"
    ),
 ),
 label: Image.asset("images/notesicon.png", width: 20.0,height: 20.0,),
 textColor: Colors.white,
 color: Color(0xFF226597),
 shape: OutlineInputBorder(borderSide: BorderSide(
           style: BorderStyle.solid,
           width: 1.0,
           color: Colors.black),
        borderRadius: new BorderRadius.circular(20.0)
  ),
),
Run Code Online (Sandbox Code Playgroud)

  • 为跳出框框思考而点赞! (4认同)

小智 8

试试下面的代码:

FlatButton(
   padding: EdgeInsets.all(10.0),
   child: Row(
   children: < Widget > [
     Text("Make a Note"),
     Icon(Icons.note),
   ],
 ),
)
Run Code Online (Sandbox Code Playgroud)