Flutter中如何设置按钮的最小尺寸?

时间:2021-04-01 12:26:44

标签: flutter button layout constraints minimum-size

我正在构建一个 Flutter Web 应用程序,其中有一个按钮,其中包含一个图标和一行中的一些文本。我的问题是,每当用户将窗口大小调整为较小的大小时,按钮就会变得太小,从而使文本突出显示。我试图给它限制并在 style 参数上设置按钮的最小尺寸,但它没有帮助。

调整窗口大小前的按钮(默认大小):
enter image description here



窗口变小后的按钮:
enter image description here



按钮小部件的代码:

class UploadTextButton extends StatelessWidget {
  final Function _onPressed;

  const UploadTextButton(this._onPressed);

  @override
  Widget build(BuildContext context) {
    return Container(
      constraints: BoxConstraints(
        maxWidth: 250,
        maxHeight: 50,
        minWidth: 200,
        minHeight: 50
      ),
      child: OutlinedButton(
        style: ButtonStyle(
          minimumSize: MaterialStateProperty.all(Size(200, 50))
        ),
          onPressed: () => _onPressed(),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Padding(
                padding: const EdgeInsets.only(right: 8.0),
                child: Icon(Icons.cloud_upload),
              ),
              Text("Upload my new picture")
            ],
          )),
    );
  }
}

2 个答案:

答案 0 :(得分:0)

如果测试大小有问题,您可以将 Fittedbox() 小部件用于文本。

FittedBox(
child:Text("Upload my new picture"),)

答案 1 :(得分:-2)

您可以在应用主题中定义按钮大小

例如:

     buttonTheme: const ButtonThemeData(

     buttonColor: assentColor,
 
     padding: EdgeInsets.symmetric(vertical: 20),

      minWidth: double.maxFinite,
 
     colorScheme: ColorScheme.light(brightness: 
  
    Brightness.dark),
    
     ),