簡體   English   中英

切換按鈕 flutter 的更改圖標

[英]Change Icon of toggle button flutter

無論如何要在按下時更改切換按鈕的圖標,或者無論如何要使圖標按鈕 function 像切換按鈕一樣?

我嘗試了以下方法,但如果按鈕按下 agian,我想將 Icon agian 更改為第一個。

IconButton( iconSize: 30.0,
            padding: EdgeInsets.only(left:4,right:4,top:0),
            icon: Padding(
            child: pressed ==true ? 
            Icon(Icons.start):Icon(Icons.stop)
                  ),
                  onPressed: () {
                    setState(() {
                      pressed=true;
                    });
                  }
IconButton( iconSize: 30.0,
        padding: EdgeInsets.only(left:4,right:4,top:0),
        icon: Padding(
        child: pressed ==true ? 
        Icon(Icons.start):Icon(Icons.stop)
              ),
              onPressed: () {
                setState(() {
                  pressed = !pressed;
                });
              }

pressed = !pressed - 與按下的等於當前不按下的相同。 因此,如果 boolean 為假,按下它將切換為真,如果 boolean 為真,則為假。

我使用上面相同的代碼創建了一個小部件。

class IconToggleButton extends StatelessWidget {
  final bool isSelected;
  final Function onPressed;
  IconToggleButton({this.isSelected, this.onPressed});

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.white,
      child: IconButton(
        iconSize: 30.0,
        padding: EdgeInsets.all(5),
        icon: Padding(
            padding: EdgeInsets.zero,
            child: isSelected == true
                ? Icon(FontAwesome.sort_name_up)
                : Icon(FontAwesome.sort_name_down)),
        onPressed: () {
          onPressed();
        },
      ),
    );
  }
}

用法:

創建 class 變量

 bool isSelected = false;

使用小部件如下:

IconToggleButton(
                        isSelected: isSelected,
                        onPressed: () {
                          setState(
                            () {
                              isSelected = !isSelected;
                            },
                          );
                        },
                      )

希望它會幫助很多人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM