'TextStyle?'不能分配给参数类型"文本样式"



我在我的flutter应用程序上工作时得到这个null安全错误。

The argument type 'TextStyle?' can't be assigned to the parameter type 'TextStyle'.
下面是抛出这个错误的代码片段:
ButtonStyle(textStyle: MaterialStateProperty.all<TextStyle>(Theme.of(context).textTheme.button))

VS Code建议将not操作符放在参数的末尾。

ButtonStyle(textStyle: MaterialStateProperty.all<TextStyle>(Theme.of(context).textTheme.button!))

问题:使用是个好习惯吗?在我的代码和其他可能的解决方案,在这种情况下?

如果为材质TextStyle导入了错误的库,也会出现此错误。

当您使用:

import 'dart:ui';

代替:

import 'package:flutter/material.dart';

材料状态属性表示依赖于部件的材料状态的值。状态被编码为一组MaterialState值,就像MaterialState一样。专注,MaterialState。徘徊,MaterialState.pressed。比如墨水瓶。overlayColor定义了当墨水被按下("飞溅色")、聚焦或悬停时填充墨水的颜色。InkWell使用叠加颜色的解析方法来计算墨水瓶当前状态的颜色。

你可以只使用Theme of context来使用Theme textStyle,像这样:

Text("copied text theme",
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.button)

在Buildcontext中初始化你的样式,示例:

var _styleType = Theme.of(context)
.textTheme
.body1
.copyWith(color: Colors.white);

然后将其应用于小部件:

Container(
margin: EdgeInsets.symmetric(vertical: 10),
child: new Text("u00a9 TasnuvaOshin",
overflow: TextOverflow.ellipsis,
style: _styleType),
),

MaterialStateTextStyle.resolveWith((states) =>TextStyle(字形大小:12),

可以使用。resolveWith从MaterialPropertyResolver回调函数创建MaterialStateTextStyle的方法。

相关内容

  • 没有找到相关文章

最新更新