flutter - DART:如何将参数传递给需要是 const 的方法

标签 flutter dart refactoring dry

我正在重构一个 Flutter 应用程序以提高可读性,并决定通过移动重复调用来减少重复,以通过提取方法来使用 Padding 包装小部件。该方法如下所示:

Padding _wrapWithPadding(Widget widget, {double horizontal = 8.0, double vertical = 0.0}) {
  return const Padding(padding:
        EdgeInsets.symmetric(horizontal: horizontal, vertical: vertical),
    child: widget);
}

Dart 编译器提示水平、垂直和小部件参数在调用 Padding 构造函数时不是常量。我理解这个问题,但肯定有一种方法可以消除一遍又一遍地创建 Padding 元素的重复?

是否有某种方法可以让编译器将这些值视为常量,或者是否有其他方法可以实现我的目标?

最佳答案

如果你希望padding是常量,你应该确保它的child是由const构造创建的。我不建议这样做。

但是,您也可以使用扩展方法

    extension WidgetExtension on Widget {
      Padding addPadding({double horizontal = 8.0, double vertical = 0.0}) {
        return Padding(
            padding:
                EdgeInsets.symmetric(horizontal: horizontal, vertical: vertical),
            child: this);
      }
    }

    Container().addPadding();

关于flutter - DART:如何将参数传递给需要是 const 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60547054/

相关文章:

sql - 在 Go 中泛化 *sql.Rows 扫描

dart - 在 Flutter 的 ListViewBuilder 中使用动态 TextField

javascript - 如何在 dart 中使用 javascript 库

json - 使用Dart将输入表单中的数据存储到JSON中

flutter - 将子窗口小部件定位在“列”父窗口小部件的中心和末尾

c# - 将 C# 公共(public)字段重构为属性的工具

ios - 使用 Flutter 插入 sqflite 时出现问题

flutter - Flutter:按钮周围的SizedBox破坏了文本对齐方式

firebase - 如何修复错误: type 'Null' is not a subtype of type '() => void'

C++每个派生类中的不同常量成员,如何移动函数以消除访问中的重复?