0

如果我想查看的用户在他的数据库部分中有特定的内容,我试图只返回 a ListTilein a SliversListCustomScrollView我怎样才能做到这一点?我想做这样的事情:

CustomScrollView(
  slivers: [
    SliverList(
        delegate: SliverChildListDelegate(snapshot.data!.docs
            .map((DocumentSnapshot document) {
      final data = document.data() as Map<String, dynamic>;
      String likesString = data["likes"].toString();
      List<String> likesList = likesString.split(' ');
      var likes = likesList.length - 1;
      
      if(data['favsub'].toString().contains("test"){
        return ListTile(
          onTap: () => callChatDetailScreen(
              context, data['name'], data['uid']),
          title: Text(data['name']),
          leading: GestureDetector(
            onTap: () {
              showDialog(
                  context: context,
                  builder: (context) => Dialog(
                      shape: RoundedRectangleBorder(
                          borderRadius: BorderRadius.all(
                              Radius.circular(32.0))),
                      backgroundColor: Colors.transparent,
                      child: Container(
                          decoration: new BoxDecoration(
                              image: new DecorationImage(
                                  fit: BoxFit.scaleDown,
                                  image: new NetworkImage(
                                      data['url']))))));
            },
            child: Container(
              width: 100,
              height: 100,
              decoration: new BoxDecoration(
                  shape: BoxShape.circle,
                  image: new DecorationImage(
                      fit: BoxFit.scaleDown,
                      image: new NetworkImage(data['url']))),
            ),
          ),
          subtitle: Text(
            likes.toString() + " Likes",
            style: TextStyle(
                fontWeight: FontWeight.bold,
                color: getColor(likes)),
          ));
      }
      else{
        //do nothing
      }

      
    }).toList()))
  ],
),
4

1 回答 1

0

SliverChildListDelegate需要位置参数,即List<Widget>. 您可以返回空[]列表。

在映射数据时,您可以删除else状态。它会正常工作。此外,您可以传递空SizedBox()的或任何小部件来显示信息。

于 2022-03-03T15:29:49.573 回答