如何制作像生物编辑器一样的 Tinder - Flutter

Posted

技术标签:

【中文标题】如何制作像生物编辑器一样的 Tinder - Flutter【英文标题】:How to make Tinder like Bio editor - Flutter 【发布时间】:2021-06-24 02:42:39 【问题描述】:

我想要一个类似 Tinder 的生物编辑器,当用户点击信息时,文本字段应该出现并从火力库中检索数据,并显示旧的生物,如果用户点击键盘上的完成按钮或按屏幕上的任意位置,应提交数据。提前谢谢你

更新:这是我尝试过的代码,有什么方法可以删除上层堆栈并在点击 about 容器时显示文本字段,并在提交后返回堆栈并显示 about 字段,以及我想在文本字段中从 firebase 检索旧文本(当用户更新时)。

Widget about(BuildContext context, dynamic snapshot) 
return Padding(
  padding: const EdgeInsets.symmetric(horizontal: 8.0),
  child: Container(
        height: MediaQuery
            .of(context)
            .size
            .height * 0.2,
        width: MediaQuery
            .of(context)
            .size
            .width,
        decoration: BoxDecoration(
          color: constantColors.white,
          borderRadius: BorderRadius.circular(15),
        ),
        child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
          Row(
            children: [
              Padding(
                padding: const EdgeInsets.only(
                  top: 8.0,
                  left: 10,
                ),
                child: Text(
                  "About",
                  style: TextStyle(fontSize: 24),
                ),
              ),
              Padding(
                padding: const EdgeInsets.only(top: 13, left: 6),
                child: Icon(
                  FontAwesome.pencil,
                  size: 13,
                ),
              )
            ],
          ),
          Stack(
            children: [

              Container(
                height: MediaQuery
                    .of(context)
                    .size
                    .height * 0.1,
                width: MediaQuery
                    .of(context)
                    .size
                    .width,
                child: TextField(
                  onTap: ()
                    Provider.of<PostFunctions>(context, listen: false).about(context, Provider.of<Authentication>(context, listen: false).getUserUid, 
                      'about': aboutController.text,
                    );
                  ,
                  controller: aboutController,
                  maxLines: 8,
                  cursorColor: constantColors.green,
                  decoration: InputDecoration(
                      contentPadding: EdgeInsets.all(15),
                      hintText: 'A little about you',
                      isDense: true,
                      enabledBorder: OutlineInputBorder(
                          borderRadius: BorderRadius.circular(20),
                          borderSide: BorderSide.none),
                      focusedBorder: OutlineInputBorder(
                          borderRadius: BorderRadius.circular(20),
                          borderSide: BorderSide.none),
                      fillColor: constantColors.white,
                      filled: true,),
                ),
              ),
              Container(
                height: MediaQuery
                    .of(context)
                    .size
                    .height * 0.1,
                width: MediaQuery
                    .of(context)
                    .size
                    .width,
                color: constantColors.white,
                child: Text(snapshot.data.data()['about']),),
            ],
          ),
        ]),
      ),



);

这是未来的上传和更新方法

Future about(BuildContext context, String userID, dynamic data)async
return FirebaseFirestore.instance.collection('users').doc(userID).update(data);

【问题讨论】:

附上一个minimal reproducible example,说明您到目前为止所尝试的内容以及您遇到的问题:阅读How to Ask。 您在进行该过程时是否有错误?如果是这样,您能否提供有关问题/错误的信息以及您到目前为止所做的事情? @padaleiana 对不起,我不活跃,我更新了我尝试的代码。 @Eduardo 是的,当我点击容器时,文本字段没有打开,我是新手,如果你能更简短地解释一下,我将不胜感激 【参考方案1】:

更好的方法是提前检索用户数据。然后,如果数据存在,您可以使用其conntroller 使用数据填充文本字段。

【讨论】:

以上是关于如何制作像生物编辑器一样的 Tinder - Flutter的主要内容,如果未能解决你的问题,请参考以下文章

如何在单个 tableView 中创建各种类型的单元格?

iOS Tinder/Twitter 类似滑块分页导航和菜单

FL水果如何裁剪歌曲?

零基础怎样学FL STUDIO

如何制作实时可编辑表格?

CollectionView Flowlayout 自定义