通过走出去这个教程对Riverpod并使用此代码给出了一个错误Unexpected text 'late'
class Clock extends StateNotifier<DateTime> {
Clock() : super(DateTime.now()) {
_timer = Timer.periodic(Duration(seconds: 1), (_) {
state = DateTime.now();
});
}
late final Timer _timer;
@override
void dispose() {
_timer.cancel();
super.dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
我的代码与链接网站上的代码完全相同。这个错误看起来很奇怪,因为我在 google 或 stackoverflow 上没有找到与此类似的任何内容。
我目前正在阅读有关 Flutter 的内容,并了解到可以使用 CustomPainter 和 CustomClipper 创建形状。矩形、椭圆形等形状都可以使用两者来创建,那么它们之间有什么区别以及何时应该使用它们中的任何一个?
我正在使用以下代码获取下载文件夹的路径:
final output = await getExternalStorageDirectory();
RegExp pathToDownloads = new RegExp(r'.+0\/');
final outputPath = '${pathToDownloads.stringMatch(output.path).toString()}Downloads';
Run Code Online (Sandbox Code Playgroud)
上面的代码生成这个字符串:
/storage/emulated/0/Downloads
但是控制台说“没有这样的文件或目录”。我创建了这个路径字符串,因为堆栈溢出的一些答案提到上面是下载文件夹的位置,但它不是。那么在android上下载文件夹的路径是什么以及如何访问它?
StackOverflow上有很多这样的问题,但没有人能得到我需要的答案.我看过这3个问题:
在Android中获取日期对象的日期对象的价值?
如何在android中获得月和日?
获取Android上的当前时间和日期
从这3个问题中我了解到,要获得日期和时间,我们需要使用日历.我访问了它的文档页面,但这太难理解了.
现在我的问题是我想获得当前日期,即12,当前月份即11月,当前年份即2014年和小时,分钟,而不是秒和上午或下午.
我才知道,直到这里:
Calendar c = Calendar.getInstance();
Run Code Online (Sandbox Code Playgroud)
现在接下来我该怎么办?
我正在使用 wrap 来显示一些图像,方向Wrap设置为Axis.horizontal。当它用完水平空间时,它正在创建新行。只要垂直有足够的空间,一切都会按预期显示。但是在有很多图像的那一刻,它给出了一个底部溢出。
我试着包裹Wrap部件内SingleChildScrollView,ListView和Expanded但似乎没有任何工作。这是我的代码:
@override
Widget build(BuildContext context) {
return Wrap(
direction: Axis.horizontal,
spacing: 8,
runSpacing: 12,
children: [
_buildImageCard('abc'),
_buildImageCard('def'),
_buildImageCard('ghi'),
_buildImageCard('jkl'),
],
);
}
}
Run Code Online (Sandbox Code Playgroud)
和 _buildImageCard
Widget _buildImageCard(String imagePath) {
return SizedBox(
width: 500,
height: 400,
child: Card(
elevation: 5,
),
);
}
Run Code Online (Sandbox Code Playgroud)
结果是:
我正在尝试构建一个在 Dribbble 上找到的设计,如下所示:
到目前为止我能做的看起来像:
我使用以下代码在 Flutter 中进行了此设计:
Path rectPathThree = Path();
rectPathThree.lineTo(size.width, 0.0);
rectPathThree.lineTo(size.width * 0.6, size.height);
rectPathThree.lineTo(size.width * 0.8, size.height);
rectPathThree.lineTo(size.width, size.height * 0.5);
rectPathThree.lineTo(size.width, 0.0);
rectPathThree.close();
Run Code Online (Sandbox Code Playgroud)
这不是完整的代码,只是其中的一部分,其余的设计也以相同的方式使用 lineTo
要将其绘制到画布:
paint.color = lightColorTwo;
canvas.drawPath(rectPathThree, paint);
Run Code Online (Sandbox Code Playgroud)
原始设计在顶部包含一点白色,然后开始向底部的基色合并。如何添加这样的渐变?