Созданные данные из базы данных Firebase перекрывают друг друга - PullRequest
0 голосов
/ 07 января 2020

Можете ли вы помочь мне с моей проблемой? Мне удалось прочитать мои данные из базы данных Firebase, но по какой-то причине они выглядят так:

Мне нужно только, чтобы они правильно отображались в виде столбцов с изображением на фоне

enter image description here

мой код, который используется для создания виджетов, приведен ниже:

  Widget buildItem(DocumentSnapshot doc) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: Column(
      // crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
        Text('Name:   ${doc.data['offerName']}',
          style: TextStyle(fontSize: 20),
        ),
        Text('Type:   ${doc.data['offerType']}',
          style: TextStyle(fontSize: 20),
        ),
        Text(
          'End Date:${doc.data['end']}',
          style: TextStyle(fontSize: 20),
        ),
        // Text(
        //   'Start Date:${doc.data['start']}',
        //   style: TextStyle(fontSize: 20),
        // ),
      ],
      ),
    );
  }

мой код в том месте, где я хочу разместить его:

               child: Card(
                  child: Container(
                    height: 190.0,
                    width: 300.0,
                    child: Row(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Stack(
                          children: <Widget>[
                          StreamBuilder<QuerySnapshot>(
                          stream: db
                              .collection('createdoffers')
                              .snapshots(),         
                          builder: (context, snapshot) {
                            if (snapshot.hasData) {
                              return Stack(
                                  children: snapshot.data.documents
                                      .map((doc) => buildItem(doc))
                                      .toList());
                            } else {
                              return SizedBox();
                            }
                          },
                        ),

                          ],
                        )
                      ],
                    ),
                  ),
                ),

весь мой код дротика:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:vmembershipofficial/Screens/discount_clicked.dart';

class DiscountCarousel extends StatefulWidget {
  const DiscountCarousel({Key key}) : super(key: key);

  @override
  _DiscountCarouselState createState() => _DiscountCarouselState();
}

class _DiscountCarouselState extends State<DiscountCarousel> {
  Widget buildItem(DocumentSnapshot doc) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: Column(
      // crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
        Text('Name:   ${doc.data['offerName']}',
          style: TextStyle(fontSize: 20),
        ),
        Text('Type:   ${doc.data['offerType']}',
          style: TextStyle(fontSize: 20),
        ),
        Text(
          'End Date:${doc.data['end']}',
          style: TextStyle(fontSize: 20),
        ),
        // Text(
        //   'Start Date:${doc.data['start']}',
        //   style: TextStyle(fontSize: 20),
        // ),
      ],
      ),
    );
  }

  final db = Firestore.instance;
  String offer;
  @override
  Widget build(BuildContext context) {
    return Container(
        height: 220.0,
        child: ListView.builder(
          padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10.0),
          shrinkWrap: true,
          scrollDirection: Axis.horizontal,
          itemCount: 5,
          itemBuilder: (BuildContext context, int posiition) {
            return Padding(
              padding: EdgeInsets.symmetric(horizontal: 5.0),
              child: InkWell(
                onTap: () {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                      builder: (BuildContext context) => DiscountClicked(),
                    ),
                  );
                },
                child: Card(
                  child: Container(
                    height: 190.0,
                    width: 300.0,
                    child: Row(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Stack(
                          children: <Widget>[
                          StreamBuilder<QuerySnapshot>(
                          stream: db
                              .collection('createdoffers')
                              .snapshots(),         
                          builder: (context, snapshot) {
                            if (snapshot.hasData) {
                              return Stack(
                                  children: snapshot.data.documents
                                      .map((doc) => buildItem(doc))
                                      .toList());
                            } else {
                              return SizedBox();
                            }
                          },
                        ),

                          ],
                        )
                      ],
                    ),
                  ),
                ),
              ),
            );
          },
        ));
  }

  void readData() async {
    DocumentSnapshot snapshot =
        await db.collection('createdoffers').document(offer).get();
    print(snapshot.data['name']);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...