有沒有辦法根據 MaterialState 更改顫動的 MateriaButton 邊框顏色(或任何其他屬性)?
ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith<Color?>((states) => ...),
overlayColor: MaterialStateProperty.resolveWith<Color?>((states) => ...),
side: MaterialStateProperty.resolveWith<BorderSide?>((states) => {
if (states.contains(MaterialState.pressed)) {
return BorderSide(color: Colors.Blue);
}
return BorderSide(color: Colors.Red);
}),
)
嘗試以這種方式設定邊框似乎對側面沒有任何影響,但它始終保持紅色。backgroundColor 和 overlayColor 似乎都根據狀態而變化,但 side 屬性不會。有沒有辦法做到這一點?
編輯: 以這種方式設定 side 屬性似乎畢竟有效。@nagendra nag 提出的方法也很有效。實際問題似乎是影片似乎很慢,因此除非短按按鈕,否則更改不可見。
uj5u.com熱心網友回復:
嘗試這個
shape: MaterialStateProperty.resolveWith(
(states) {
if (states.contains(MaterialState.focused)) {
return const RoundedRectangleBorder(
side: BorderSide(color: Colors.red),
);
}
if (states.contains(MaterialState.pressed)) {
return const RoundedRectangleBorder(
side: BorderSide(color: Colors.green),
);
}
if (states.contains(MaterialState.hovered)) {
return const RoundedRectangleBorder(
side: BorderSide(color: Colors.blue),
);
}
},
),
),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449653.html
