我来自像angular、react和vue这样的前端webframeworks,我很难找到编写可重用小部件样式的最佳方法。让我用一个例子来演示这个问题。
假设我们有这个小部件:
Container(
width: 25,
height: 10,
decoration: BoxDecoration(
color: const Color(0xff7c94b6),
border: Border.all(
color: Colors.black,
width: 8.0,
),
),
child: /* some custom widget */,
);
现在让我们假设我想让容器
属性像width
、height
等可以通过参数改变。如果没有传递属性的某个参数,则应该使用其默认值,如下所示:
class CustomWidget extends StatelessWidget {
final double width;
final double height;
final BoxDecoration decoration;
const CustomWidget ({
Key key,
this.width = 25,
this.height = 10,
this.decoration = /* default decoration */
/* possibly even more properties */
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: width,
height: height,
decoration: decoration,
child: /* some custom widget */
}
}
Flutter样式的行为类似于Vue范围内的styled/React“styled-component”或React本地:
在这些场景中没有“全局风格”。取而代之的是,您使用组合来获得所需的结果。
从某种意义上说,每个“CSS类”都有一个StatelessWidget,而不是一个带有许多参数的大StatelessWidget。
RedBackground(
child: Text('hello world'),
)
RedBackground(
child: MyBorder(
child: Text('hello world'),
),
)
我在C:\src中使用这一行 git克隆-B稳定https://github.com/flutter/flutter.git 在路径中,我键入这一行: 一些错误是:
有趣的是,我尝试了一个switch case语句,它给了我同样的警告,因此我无法运行代码。是我做错了什么,还是让人无法使用if/else或switch语句而不认为有死代码?
我正在尝试从Flutter中的父部件传递堆栈的高度,但我无法做到。请帮助我找到解决方案,我将把我的代码作为参考。 父小工具 子部件 如何将堆栈的高度传递给SVGPicture。
我正在寻找AndroidVisibility.GONE等效选项。 以编程方式在 Flutter 中显示/隐藏小部件 上述链接批准的解决方案在将“不透明度”设置为 0 后将占用空间。对于没有像Android那样占用任何空间,该解决方案说 要使其不占用空间,请将其替换为空的。 有人请告诉我如何实现这一目标。我需要使Widget完全擦除,而无需以编程方式占用任何空间。 注意:我需要类似的执行解决方案,如
在Android中,每个子类都有一个方法,允许您修改对象的可见性 设置可见性有3个选项: 可见:呈现布局内部可见的 Flutter中的小部件是否有与上述相同的功能? 快速参考:https://developer.android.com/reference/android/view/View.html#attr_android:visibility
听起来有点愚蠢,但我需要我的方法的帮助,这很烦人。我试着在网上查找,因为是一个出错和“找不到Kid constructor#2”的程序,尽管它在那里,我甚至会做其他事情,但它不起作用。好吧,这太多了,下面是我的代码: 好的,所以我上面的toString(我知道,我的第三个参数是关闭的,应该是字符串)是关闭的。如果我硬编码第三个值,它就会失控,说它找不到这个(上面)。那么我怎么才能得到日期并把它分开