【发布时间】:2021-08-13 07:34:32
【问题描述】:
这是我让星星始终变黄变灰的代码,但没有奏效。为什么?
Widget placeButton(BuildContext context, String name, String image, String id) {
var color;
var isClicked = true;
return Column(children: [
Padding(
padding: const EdgeInsets.fromLTRB(130.0, 0.0, 130.00, 0.0),
child: ClipRRect(
borderRadius: BorderRadius.circular(20),
child: SizedBox(
height: 300,
width: 400,
child: GestureDetector(
onTap: () {
Navigator.pushNamed(context, id);
},
child: Card(
child: ListTile(
title: Padding(
padding: const EdgeInsets.fromLTRB(20, 5, 20, 0),
child: Text(AppLocalizations.of(context)!.translate(name),
style: TextStyle(fontFamily: 'Manrope', fontSize: 18)),
),
subtitle: Image.network(
image,
height: 250,
),
),
),
),
),
),
),
Container(
height: 40,
width: 200,
padding: EdgeInsets.only(top: 0),
color: Colors.white,
child: ListTile(
leading: Text(
"Rating:",
style: TextStyle(fontFamily: 'Klasik'),
),
trailing: IconButton(
splashRadius: 20,
icon: Icon(Icons.star_border_outlined, color: color),
onPressed: () {
if (isClicked) {
color = Colors.grey;
isClicked = !isClicked;
} else {
color = Colors.yellow;
isClicked = !isClicked;
}
},
),
),
),
]);
}
P/S:请随时向我询问以下代码。我试过 setState 但它没有用。它返回如下错误: 未定义函数“setState”。 尝试导入定义“setState”的库,将名称更正为现有函数的名称,或定义名为“setState”的函数。
【问题讨论】:
-
显示完整的小部件代码,不仅是 placebutton 代码。没有它,我会说 setState 不适合你,因为你的小部件不是 StatefulWidget
-
不,我不能让它工作
-
显示完整代码。