繁体   English   中英

如何使用firebase数据在flutter上导航?

[英]How to use firebase data to navigate on and on in flutter?

在此处输入图像描述

我学会了如何导航到其他页面并弹出它,但是根据我上面制定的逻辑,我不知道该怎么做。 (我无法在 inte.net 上找到类似的东西)。 图像中的评论是由用户创建的,一旦提交,它就会使用 firebase 在 ListView.builder 中列出。我如何做到当用户 select 1 条评论时,它会自动导航到尚未创建的新页面? 有可能吗? 先感谢您

  body: Padding(
        padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
        child: SingleChildScrollView(
          child: Column(
            children: [
              Container(
                height: 200,
                child: Text('Chapter 1'),
                margin: EdgeInsets.all(20.0),
                alignment: Alignment.center,
                decoration: BoxDecoration(
                    color: Colors.grey[300],
                    borderRadius: BorderRadius.circular(12),
                    boxShadow: [
                      BoxShadow(
                        color: Colors.grey.shade600,
                        offset: Offset(4, 4),
                        blurRadius: 13,
                      ),
                      BoxShadow(
                        color: Colors.white,
                        offset: Offset(-4, -4),
                        blurRadius: 13,
                      )
                    ]),
              ),            
              Container(
                  child: StreamBuilder<QuerySnapshot>(
                    stream: users,
                    builder: (BuildContext context,
                        AsyncSnapshot<QuerySnapshot> snapshot) {
                      if (snapshot.hasError) {
                        return Text('Something went wrong.');
                      }
                      if (snapshot.connectionState ==
                          ConnectionState.waiting) {
                        return Text('Loading');
                      }

                      final data = snapshot.requireData;

                      return ListView.builder(
                        physics: ScrollPhysics(),
                        shrinkWrap: true,
                          itemCount: data.size,
                          itemBuilder: (context, index) {
                            return Card(
                              child: ListTile(
                                onTap: () {
                                  print('${data.docs[index]['name']}\n${data.docs[index]['age']}');
                                },
                                title: Text('${data.docs[index]['name']}\n${data.docs[index]['age']}'),
                              ),
                            );
                          });
                    },
                  )
              ),

在此处输入图像描述

这是一个实际的应用程序,可以更好地理解

您是否显示用户在容器上单击的列表块的详细信息? 如果是这样,您不必导航到新页面。 您可以根据点击更改显示部分。 另外,因为当您 go 到新页面时通常意味着项目> item_detail,我们不会在新页面上显示项目列表。

逻辑会像

Column[DetailContainer, ListView(ListTiles)]

在列表上单击更改详细信息容器的内容。

但是如果你想换页,那么你应该使用像go_router这样的Navigator 2.0包和Provider这样的state管理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM