- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题是,每当我单击“Like”按钮时,当我在 onPressed() 方法上更新时,按钮图标和文本的颜色都不会改变。可能是什么问题,请指导?从过去 1 个月开始,我正在试验 flutter。
这是我的类(class)代码:
class SingelBattleAllComments extends StatefulWidget {
final int battleId; // add info
SingelBattleAllComments({@required this.battleId});
@override
_SingelBattleAllCommentsState createState() =>
_SingelBattleAllCommentsState(battleId: battleId);
}
class _SingelBattleAllCommentsState extends State<SingelBattleAllComments> {
final int battleId; // add info
final List<String> profileImages = [
'https://www.codecyan.com/images/omi-shah-codecyan-founder-ceo.jpg'];
Color likeButtonColor;
List<Widget> commentsListItems;
_SingelBattleAllCommentsState({@required this.battleId});
@override
void initState() {
likeButtonColor = new Color(0xff333030);
commentsListItems = List<Widget>.generate(5, (i) {
return Column(
children: <Widget>[
SizedBox(height: 15),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(10)),
color: Colors.white,
border: Border.all(color: Colors.black12, width: 1)),
child: Padding(
padding: EdgeInsets.all(7),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
ClipRRect(
borderRadius: BorderRadius.circular(50.0),
child: CachedNetworkImage(
fit: BoxFit.cover,
imageUrl: profileImages[0
],
width: 50,
height: 50)),
SizedBox(width: 10),
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("OMi Shah",
style: TextStyle(
fontWeight: FontWeight.bold,
)),
SizedBox(height: 3),
Container(
width: 250, //screenWidth * 0.65,
child: Text(
"Hello",
),
),
SizedBox(height: 5),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: <Widget>[
FlatButton.icon(
onPressed: () {
setState(() {
likeButtonColor = Colors.red;
});
},
label: Text("Like (291)",
style:
TextStyle(color: likeButtonColor)),
icon: Icon(Icons.thumb_up,
color: likeButtonColor),
),
SizedBox(width: 15),
FlatButton.icon(
onPressed: () {},
label: Text("Report",
style: TextStyle(
color: const Color(0xff333030))),
icon: Icon(Icons.report,
color: const Color(0xff333030)),
),
],
)
])
])))
],
);
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: ListView.builder(
padding:
EdgeInsets.only(left: 20, top: 10, right: 20, bottom: 10),
itemCount: commentsListItems.length,
itemBuilder: (BuildContext ctxt, int index) {
return commentsListItems[index];
}),
));
}
}
这是输出屏幕截图:
谢谢。
最佳答案
您可以在下面复制粘贴运行完整代码
您只能创建一个小部件并将这些数据绑定(bind)到该小部件
代码 fragment
commentsListItems = List<int>.generate(5, (i) => i + 1);
...
Widget Comment(int index) {
return Column(
children: <Widget>[
SizedBox(height: 15),
工作演示
完整代码
import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or simply save your changes to "hot reload" in a Flutter IDE).
// Notice that the counter didn't reset back to zero; the application
// is not restarted.
primarySwatch: Colors.blue,
),
home: SingelBattleAllComments(battleId: 1,),
);
}
}
class SingelBattleAllComments extends StatefulWidget {
final int battleId; // add info
SingelBattleAllComments({@required this.battleId});
@override
_SingelBattleAllCommentsState createState() =>
_SingelBattleAllCommentsState(battleId: battleId);
}
class _SingelBattleAllCommentsState extends State<SingelBattleAllComments> {
final int battleId; // add info
final List<String> profileImages = [
'https://www.codecyan.com/images/omi-shah-codecyan-founder-ceo.jpg'
];
Color likeButtonColor;
List<int> commentsListItems;
_SingelBattleAllCommentsState({@required this.battleId});
@override
void initState() {
likeButtonColor = Color(0xff333030);
commentsListItems = List<int>.generate(5, (i) => i + 1);
super.initState();
}
Widget Comment(int index) {
return Column(
children: <Widget>[
SizedBox(height: 15),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(10)),
color: Colors.white,
border: Border.all(color: Colors.black12, width: 1)),
child: Padding(
padding: EdgeInsets.all(7),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
ClipRRect(
borderRadius: BorderRadius.circular(50.0),
child: CachedNetworkImage(
fit: BoxFit.cover,
imageUrl: profileImages[0
],
width: 50,
height: 50),
),
SizedBox(width: 10),
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text("OMi Shah",
style: TextStyle(
fontWeight: FontWeight.bold,
)),
SizedBox(height: 3),
Container(
width: 250, //screenWidth * 0.65,
child: Text(
"Hello",
),
),
SizedBox(height: 5),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
FlatButton.icon(
onPressed: () {
setState(() {
likeButtonColor = Colors.red;
});
},
label: Text("Like (291)",
style: TextStyle(color: likeButtonColor)),
icon: Icon(Icons.thumb_up,
color: likeButtonColor),
),
SizedBox(width: 15),
FlatButton.icon(
onPressed: () {},
label: Text("Report",
style: TextStyle(
color: const Color(0xff333030))),
icon: Icon(Icons.report,
color: const Color(0xff333030)),
),
],
)
])
])))
],
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: ListView.builder(
padding: EdgeInsets.only(left: 20, top: 10, right: 20, bottom: 10),
itemCount: commentsListItems.length,
itemBuilder: (BuildContext ctxt, int index) {
return Comment(index);
}),
));
}
}
关于android - Flutter - setState() 没有更新按钮的文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59082976/
表架构 DROP TABLE bla; CREATE TABLE bla (id INTEGER, city INTEGER, year_ INTEGER, month_ INTEGER, val I
我需要拆分字符串/或从具有以下结构的字符串中获取更容易的子字符串。 字符串将来自 window.location.pathname 或 window.location.href,看起来像 text/n
每当将对象添加到数组中时,我都会尝试更新 TextView ,并在 TextView 中显示该文本,如下所示: "object 1" "object 2" 问题是,每次将新对象添加到数组时,它都会覆盖
我目前正在寻找使用 Java 读取网站可见文本并将其存储为纯文本字符串的方法。 换句话说,我想转换成这样: Hello stupid World进入“ Hello World ” 或者类似的东西 Un
我正在尝试以文本和 HTML 格式发送电子邮件,但无法正确发送正确的 header 。特别是,我想设置 Content-Type header ,但我找不到如何为 html 和文本部分单独设置它。 这
我尝试了上面的代码,但我无法绑定(bind)文本,我怎样才能将资源内部文本 bloc
我刚刚完成了 Space Shooter 教程,由于没有 GUIText 对象,所以我创建了 UI.Text 对象并进行了相应的编码。它在统一播放器中有效,但在构建 Web 应用程序后无效。我花了一段
我有这个代码: - (IBAction)setButtonPressed:(id)sender { NSUserDefaults *sharedDefaults = [[NSUserDefau
抱歉标题含糊不清,但我想不出我想在标题中做什么。无论如何,对于图像上的文本,我使用了 JLabel 文本并将其添加到图标中。 JLabel icon = new JLabel(new Imag
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我在将 Twitter 嵌入到我从 HTML 5 转换的 wordpress 运行网站时遇到问题。 我遇到的问题是推文不是我的自定义字体... 这是我无法使用任何 css 定位的 HTML 代码,我正
我正在尝试找到解决由于使用以下形式的代码而导致的冗余字符串连接问题的最佳方法: logger.debug("Entering loop, arg is: " + arg) // @1 在大多数情况下,
我写了这个测试 @Test public void removeRequestTextFromRouteError() throws Exception { String input = "F
我目前正在创建一个正则表达式来拆分所有匹配以下格式的字符串:&[文本],并且需要获取文本。字符串可能类似于:something &[text] &[text] everything &[text] 等
有没有办法将标题文本从一个词变形为另一个词,同时保留两个词中使用的字母?我看过的许多 css 文本动画大多是视觉的,很少有旋转整个单词的。 我想要做的是从一个词过渡,例如“BEACH”到“CHANGE
总结matplotlib绘图如何设置坐标轴刻度大小和刻度。 上代码: ?
我在容器 (1) 中创建了容器 (2)。你能帮忙如何向容器(1)添加文本吗?下面是我的代码 return Scaffold( body: Padding( padding: c
我似乎找不到任何人或任何人这样做过。我试图限制我们使用的图像数量,并想创建一个带有渐变作为其“颜色”的文本,并在其周围设置渐变轮廓/描边 到目前为止,我还没有看到任何将两者结合在一起的东西。 我可以自
我正在为视频游戏暗黑破坏神 2 使用 discord.py 构建一个不和谐机器人。其中一项功能要求机器人从暗黑破坏神 2 屏幕截图中提取项目的名称和属性。我目前正在为此使用 pytesseract,但
我很难弄清楚如何旋转 strip.text theme 中的属性来自 ggplot2 .我使用的是 R 版本 3.4.2 和 ggplot2 版本 2.2.1。 以下是 MWE 的数据。 > dput
我是一名优秀的程序员,十分优秀!