Elevated按钮在按下该按钮时没有听到变化


void _activebutton() {
controller = TextEditingController();
print(controller);
_isButtonActive = !_isButtonActive;
controller.addListener(
() {
final _isButtonActive = controller.text.isNotEmpty;
this._isButtonActive = _isButtonActive;
},
);
notifyListeners();
}

_isButtonActive变量默认值被指定为false。。

Consumer<PasswordVisibilty>(
builder: (context, mybutton, child) {
return ElevatedButton(
style: ElevatedButton.styleFrom(
primary: appPrimaryColor, // background
onPrimary: Colors.white, // foreground
fixedSize: Size(context.screenWidth * 0.80,
context.screenHeight * 0.07),
onSurface: appPrimaryColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(15),
),
),
onPressed: mybutton.buttonactive
? () {
mybutton.activebutton();
}
: null,

提升按钮被Consumer包裹,但按下按钮时不会改变状态

您可能想尝试一下。

ElevatedButton(
// ...
onPressed: this._isButtonActive ? mybutton.activebutton : null,
)

请注意,您可以使用撕下而不是闭合。

此外,侦听器中的双重分配是不必要的:

controller.addListener(() => _isButtonActive = controller.text.isNotEmpty);

相关内容

  • 没有找到相关文章

最新更新