Flutter - 如何获取和存储可调节平面按钮的宽度

Posted

技术标签:

【中文标题】Flutter - 如何获取和存储可调节平面按钮的宽度【英文标题】:Flutter - How to get and store the width of an adjustable flat button 【发布时间】:2020-04-24 19:53:43 【问题描述】:

我需要在创建标准平面按钮后获取并存储它的宽度,我该怎么做?

double _width; //store here the flatbutton's width created below

Widget _flatButtonStoreWidth (String text)

  return FlatButton(
    child: Text(text),
    onPressed: () ,
  );

【问题讨论】:

【参考方案1】:

您可以使用LayoutBuilder 小部件,这是来自https://***.com/a/41558369/4465386 的演示。

return FlatButton(
  child: new LayoutBuilder(
    builder: (BuildContext context, BoxConstraints constraints) 
      setState(() => _width = constraints.maxWidth);
        return new Text('this is a button');
    
  ),
);

【讨论】:

我不想设置它的宽度,我想在创建平面按钮后获取它的宽度。谢谢! :) 我在一个干净的 Flutter 项目中实现了它来测试它,只使用了 Scaffold 和 Center Widget,它抛出了这个异常:在构建 LayoutBuilder 时抛出了以下断言:setState() 或 markNeedsBuild()在构建期间调用。此 MyHomePage 小部件无法标记为需要构建,因为框架已经在构建小部件的过程中。只有在其祖先之一当前正在构建时,小部件才能在构建阶段标记为需要构建。

以上是关于Flutter - 如何获取和存储可调节平面按钮的宽度的主要内容,如果未能解决你的问题,请参考以下文章

如何使SWT窗口/外壳及其上的所有组件可调节?

如何在C#里面描绘图片中那种波形?还有如何添加圆形可调节控件呢?

如何在 Flutter 中禁用 FlatButton 的飞溅突出显示?

如何在 Flutter 中从内部和外部存储中获取所有 mp3 文件?

如何以单独的方法获取 Flutter Firebase 存储?

Flutter:如何根据 Apple 指南添加 Apple Pay 按钮