按下按钮时如何更改按钮图像

时间:2019-11-15 12:02:38

标签: flutter dart

我想在触摸按钮时更改按钮图片。

我尝试了几种方法,但徒劳无功。

我认为这是一个非常基本的问题,虽然有很多样本可以设置初始图像,但找不到动态分配的方式。

  @override
  Widget build(BuildContext context) {
    Image imgLevel = Image.asset('images/LL_Normal.png');

    FlatButton fbLevelBtn = 
      new FlatButton(
        onPressed: (){
          debugPrint("test ok”);
          imgLevel = Image.asset('images/LL_Hard.png'); // it doesn’t work..
          this.child = Image.asset('images/LL_Hard.png'); // it doesn’t work..

        },
        padding: EdgeInsets.all(0.0),
        child: imgLevel
      );

2 个答案:

答案 0 :(得分:1)

改为在build方法中更改图片:

bool isPressed = false;

    @override
      Widget build(BuildContext context) {
        Image imgLevel = isPressed  ? Image.asset('images/LL_Normal.png') : Image.asset('images/LL_Hard.png');

        FlatButton fbLevelBtn = 
          new FlatButton(
            onPressed: (){
              debugPrint("test ok”);
              setState(() => {isPressed = true});

            },
            padding: EdgeInsets.all(0.0),
            child: imgLevel
          );

答案 1 :(得分:0)

按下按钮会发生什么?因为似乎您缺少setstate函数

相关问题