Можете ли вы помочь мне с моей проблемой? Мне удалось прочитать мои данные из базы данных Firebase, но по какой-то причине они выглядят так:
Мне нужно только, чтобы они правильно отображались в виде столбцов с изображением на фоне
мой код, который используется для создания виджетов, приведен ниже:
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']);
}
}