Flutter 如何制作可用于选择题的小部件按钮?

Flutter 如何制作可用于选择题的小部件按钮?,flutter,Flutter,我做了一个可定制的按钮,它可以有不同的功能、标题和颜色。但问题是,每当我单击一个按钮时,它就会使用该颜色属性更改所有按钮的颜色。我希望他们有自己的初始颜色,按下时会改变,就像测验按钮一样,在正确或错误时会改变颜色 下面是我的代码 buildQuizButton( {字符串文本, 颜色背景颜色, 颜色文本颜色, 颜色边框颜色, 函数}){ 返回容器( 填充:仅限边缘设置(顶部:2), 孩子:扁平按钮( onPressed:函数, 子:容器( 装饰:盒子装饰( 颜色:背景色, 边框:边框。全部(颜色

我做了一个可定制的按钮,它可以有不同的功能、标题和颜色。但问题是,每当我单击一个按钮时,它就会使用该颜色属性更改所有按钮的颜色。我希望他们有自己的初始颜色,按下时会改变,就像测验按钮一样,在正确或错误时会改变颜色

下面是我的代码

buildQuizButton(
{字符串文本,
颜色背景颜色,
颜色文本颜色,
颜色边框颜色,
函数}){
返回容器(
填充:仅限边缘设置(顶部:2),
孩子:扁平按钮(
onPressed:函数,
子:容器(
装饰:盒子装饰(
颜色:背景色,
边框:边框。全部(颜色:borderColor),
边界半径:边界半径。圆形(5.0)),
对齐:对齐.center,
子:文本(文本,
样式:TextStyle(颜色:textColor,fontWeight:fontWeight.bold)),
宽度:250.0,
身高:35.0,
),
),
);
}
buildQuizAnswerButton(字符串选项){
如果(已回答){
如果(不正确){
返回基兹布顿(
文本:选项,
背景颜色:颜色(0xFFaed581),
textColor:Colors.black,
边框颜色:颜色(0xFFaed581),
);
}否则如果(!isCorrect){
返回基兹布顿(
文本:选项,
背景颜色:颜色(0xFFff1744),
textColor:Colors.black,
边框颜色:颜色(0xFFff1744),
);
}
}否则,如果(!已回答){
返回基兹布顿(
文本:选项,
背景颜色:颜色(0xFFaf3e5f5),
textColor:Colors.black,
边框颜色:颜色。黑色,
功能:checkAnswer(选项),
);
}
}
checkAnswer(字符串选项){
如果(选项==quizAnswer){
if(ownerId==currentUserId){
设置状态(){
答案是正确的;
isCorrect=正确;
});
不活动功能(10);
}else if(ownerId!=currentUserId){
设置状态(){
答案是正确的;
isCorrect=正确;
});
Firestore.instance.runTransaction((事务){
Firestore.instance
.collection('all_quize')
.文件(quizId)
更新数据({
“玩家”:字段值。增量(1),
});
Firestore.instance
.collection('用户')
.document(currentUserId)
.updateData({'correct':FieldValue.increment(1)});
}).然后((val){
不活动功能(60);
});
}
}else if(选项!=quizAnswer){
if(ownerId==currentUserId){
设置状态(){
答案是正确的;
isCorrect=false;
});
不活动功能(10);
}else if(ownerId!=currentUserId){
设置状态(){
答案是正确的;
isCorrect=false;
});
Firestore.instance.runTransaction((事务){
Firestore.instance
.collection('all_quize')
.文件(quizId)
更新数据({
“玩家”:字段值。增量(1),
});
Firestore.instance
.collection('用户')
.document(currentUserId)
.updateData({'error':FieldValue.increment(1)});
}).然后((val){
不活动功能(60);
});
}
}
}
上面的代码根本不起作用。它在按下之前显示红色。

您正在寻找的是一个材质按钮,可以满足您的需要


是如何使用它的一个例子。

我想你要找的是按钮。嘿,非常感谢。你解决了我的问题。这就是我要找的。