所以这就是我到目前为止所得到的。基本上,我想在用户点击FAB时显示卡。现在,当我点击FAB时,没有任何反应。

Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomPadding: false,
      appBar: AppBar(
        actions: <Widget>[
          IconButton(
            icon: Icon(Icons.exit_to_app),
            onPressed: () => logoutUser().then((value) =>
                Navigator.of(context).pushReplacementNamed('/SignIn')),
          )
        ],
        title: Text('TODO'),
      ),
      body: Container(),
      floatingActionButton: FloatingActionButton(
          child: Icon(Icons.add), onPressed: () => displayCard()),
    );
  }

  Widget displayCard() {
    return Center(
      child: Card(
        color: Colors.blue,
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            const ListTile(
              leading: Icon(Icons.album),
              title: Text('The Enchanted Nightingale'),
              subtitle: Text('Music by Julie Gable. Lyrics by Sidney Stein.'),
            ),
          ],
        ),
      ),
    );
  }

最佳答案

现在,您要将小部件返回到onPressed函数,即VoidCallBack。它不会对从displayCard()收到的Widget执行任何操作。

考虑使用对话框弹出窗口。将您的小部件displayCard()替换为以下内容。

void displayCard(BuildContext context) {
    showDialog(
        context: context,
        builder: (context) {
            return AlertDialog(
                title: Text("The Enchanted Nightingale"),
                content: Text("Music by Julie Gable. Lyrics by Sidney Stein."),
                actions: <Widget>[
                    FlatButton(
                        child: Text("Dismiss"),
                        onPressed: () {
                            //remove the dialog popup
                            Navigator.of(context).pop();
                        }

                    )
                ]
            );
        }
    );
}

然后,更新您的floatActionButton代码以将context作为参数传递
floatingActionButton: FloatingActionButton(
          child: Icon(Icons.add), onPressed: () => displayCard(context)),

关于flutter - 轻按FAB时如何显示卡?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60533139/

10-14 05:41