onPressed上的图标没有改变
Posted
技术标签:
【中文标题】onPressed上的图标没有改变【英文标题】:Icon not changing on onPressed 【发布时间】:2021-11-16 10:49:29 【问题描述】:我正在做一个更大的项目,但不知道为什么这个小部分让我几乎呆了一整天。
import 'package:flutter/material.dart';
void main()
runApp(const AllTests());
class AllTests extends StatefulWidget
const AllTests(Key? key) : super(key: key);
@override
_AllTestsState createState() => _AllTestsState();
class _AllTestsState extends State<AllTests>
IconData play = Icons.play_circle_filled;
onPressed()
if(play == Icons.play_circle_filled)
play == Icons.pause_circle_filled_rounded;
else
play == Icons.play_circle_filled;
@override
Widget build(BuildContext context)
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
IconButton(
icon: Icon(
play,
size: 80,
color: Colors.black,
),
onPressed: ()
setState(()
print('hello');
onPressed();
);
,
),
],
),
),
),
);
我刚刚尝试在 AllTests() 之前删除 const 关键字,但它现在仍然有效。 我也试过把函数直接放到 IconButton 的 onPressed 中。
hello 被打印到控制台,但图标没有改变。有什么问题?
【问题讨论】:
【参考方案1】:您使用了==
运算符而不是=
运算符。改用这个:
onPressed()
if(play == Icons.play_circle_filled)
play = Icons.pause_circle_filled_rounded;
else
play = Icons.play_circle_filled;
【讨论】:
非常感谢 @AmiManye 很乐意为您提供帮助...如果我的回答解决了您的问题,如果您将其标记为解决方案,我将不胜感激。【参考方案2】:使用=
运算符而不是==
。
onPressed()
if(play == Icons.play_circle_filled)
play = Icons.pause_circle_filled_rounded;
else
play = Icons.play_circle_filled;
【讨论】:
非常感谢以上是关于onPressed上的图标没有改变的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 onPressed 为选择的收藏图标选择单个颤振 ListTiles?
Flutter 布局 3 列宽 3 行深,图标和文本在下方 - 图标 OnPressed(不是导航栏,而是全屏)
Android设备上的Expo App某些onPress()未触发
Flutter:IconButton onPressed 在控制台中响应但在显示中没有响应