Chr*_*ris 5 android widget button dart flutter
我试图切换凸起按钮的颜色.最初按钮应为蓝色,按下时按钮变为灰色.现在我有一个名为pressAttention的bool值,它被设置为false.我用这个来初步设置这个假.按下按钮时,它会切换pressAttention bool,但似乎小部件永远不会再次更新.
new RaisedButton(
child: new Text("Attention"),
textColor: Colors.white,
shape: new RoundedRectangleBorder(borderRadius: new BorderRadius.circular(30.0)),
color: pressAttention?Colors.grey:Colors.blue,
onPressed: () => doSomething("Attention"),
)
void doSomething(String buttonName){
if(buttonName == "Attention"){
if(pressAttention = false){
pressAttention = true;
} else {
pressAttention = false;
}
}
Run Code Online (Sandbox Code Playgroud)
}
Ric*_*eap 13
此按钮需要在builda State的a中创建,StatefulWidgetState必须具有成员变量bool pressAttention = false;.正如Edman建议的那样,您需要setState在Widget 的回调中进行状态更改才能重绘.
new RaisedButton(
child: new Text('Attention'),
textColor: Colors.white,
shape: new RoundedRectangleBorder(
borderRadius: new BorderRadius.circular(30.0),
),
color: pressAttention ? Colors.grey : Colors.blue,
onPressed: () => setState(() => pressAttention = !pressAttention),
);
Run Code Online (Sandbox Code Playgroud)
如果您希望按钮更改按下状态的颜色,您只需要使用 RaisingButton 中的“highlightColor”属性
RaisedButton(
onPressed: () {},
child: Text("Test"),
highlightColor: YOUR_PRESSED_COLOR, //Replace with actual colors
color: IDLE_STATE_COLOR,
),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9782 次 |
| 最近记录: |