Flutter开发日常 几种Button的使用(OutlinedButton、ElevatedButton)

最近学习Flutter开发,到正式上手公司原有项目重构有段时间了,知识点零零碎碎的,还是在博客里记录更新一下吧,会根据我开发中遇到的内容不断总结更新。

无色背景,有边框的按钮,如下图所示:

Flutter开发日常 几种Button的使用(OutlinedButton、ElevatedButton)_第1张图片

代码实现如下:

Container(
      padding: const EdgeInsets.all(14),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,//内部组件靠左对其
        children: [
          Container(
            margin: const EdgeInsets.only(left: 2),
            child: Text(
              '企业征信报告上传',
              style: const TextStyle(
                  fontSize: 14, color: ColorsUtil.fontColor303133),
            ),
          ),
          Container(
            margin: const EdgeInsets.only(left: 2, top: 4, bottom: 16),
            child: const Text(
              '支持上传CSV、XLSX格式',
              style: TextStyle(fontSize: 14, color: ColorsUtil.fontColor919399),
            ),
          ),
          SizedBox(
            width: double.infinity,
            child: OutlinedButton.icon(
              icon: const Icon(
                Icons.add,
                color: ColorsUtil.brand100Color3376FE,
              ),
              onPressed: () {
                _selectFile(item);
              },
              label: const Text(
                '上传附件',
                style: TextStyle(
                    fontSize: 14, color: ColorsUtil.brand100Color3376FE),
              ),
              style: OutlinedButton.styleFrom(
                shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(8),
                ),
                side: const BorderSide(
                    width: 1, color: ColorsUtil.brand100Color3376FE),
              ),
            ),
          ),
        ],
      ),
    )

OutlinedButton可直接使用,也可以加icon的方式在内部添加一个图表,就像我图里面的+号,按钮内部的文字可以在label属性里实现,在style属性里可以通过OutlinedButton.styleFrom来设定边框的样式,比如边框的圆角以及边框的颜色宽度等。

接下来是有背景色的Button,如下图所示:

Flutter开发日常 几种Button的使用(OutlinedButton、ElevatedButton)_第2张图片

 代码实现如下:

 Container(
              width: double.infinity,
              padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
              child: ElevatedButton(
                onPressed: () {
                  
                },
                child: const Text(
                  '保存并分析',
                  style: TextStyle(fontSize: 16),
                ),
                style: ButtonStyle(
                    shape: MaterialStateProperty.all(RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(8))),
                    padding: MaterialStateProperty.all(
                        const EdgeInsets.symmetric(vertical: 12)),
                    backgroundColor: MaterialStateProperty.all(
                        ColorsUtil.brand100Color3376FE)),
              ),
            )

简单使用如上述所示,在style中通过ButtonStyle来设置相应的按钮形状、边距、背景色都属性。

你可能感兴趣的:(一起来学Flutter,Flutter)