首页 > 解决方案 > Flutter 在按下按钮时弹出一个列表,并在选择一个选项后关闭该列表

问题描述

我正在为可以导航用户的建筑物构建应用程序,其中一种方法是使用建筑物的平面图,并且我想在此平面图中的节点之间绘制路径以创建路线。用户输入他们想要的位置,然后路由查找算法输出一个路径,我想要构建此路径的方式是让用户从两个单独的列表中选择一个源节点和一个目标节点,我希望他们按下一个按钮在地图视图屏幕上,会出现一个包含这些节点的列表,但无论我尝试什么,该列表都不会显示。

我试过使用setStateListView返回,但这似乎是它失败的地方,因为我有打印语句来帮助验证我到达的代码中的位置,我不知道这是否是我正在使用的搜索词但到目前为止我发现的任何东西似乎都与这种用例有关。与我想要的类似,但这只是一个已经显示然后正在更新的列表。

  Widget build(BuildContext context) {
    //currently inside of a scaffold
        bottomNavigationBar: BottomAppBar(
            child: new Row(
          mainAxisSize: MainAxisSize.max,
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: <Widget>[
            IconButton(
              icon: Icon(Icons.trip_origin),
              onPressed: () {
                setState(() {
                  _sourceList();
                });
               },
             ),
           ],
          )),
    //extra code as part of scaffold
  }

  Widget _sourceList() {
    print("working1"); //this prints
    return ListView.builder(
        padding: const EdgeInsets.all(10.0),
        itemBuilder: (context, i) {
          print("working2"); //this does not
          return _buildRow();
        });
  }

  Widget _buildRow() {
    return new ListTile(title: Text(a.name));
  }

所以基本上我只想在用户按下按钮时显示一个列表,然后在做出选择后让该列表消失。实际结果是我可以按下按钮并且什么都没有显示,我只在代码中到达了working1 not working2。

标签: dartflutterflutter-layout

解决方案


推荐阅读