This is my HomePage.dart in which I am trying to display list of products horizontally but when I set scrollDirection: Axis.horizontal the entire screen turns white, I have used hero widget for some details page and thats why I have created widget buidItem. please help I am badly stuck at this I also tried signleChildScrollView but that didnt work too.
import 'package:EcommerceApp/animations/fadeAnimations.dart';
import 'package:EcommerceApp/screens/info_page.dart';
import 'package:flutter/material.dart';
class MyHomePage extends StatelessWidget {
final List<Map<String, String>> dataList = [
{"imageLink": "images/1.jpg", "tag": "one", "name": "product1"},
{"imageLink": "images/2.jpg", "tag": "two", "name": "product2"},
{"imageLink": "images/3.jpg", "tag": "three", "name": "product3"},
{"imageLink": "images/4.jpg", "tag": "four", "name": "product4"},
{"imageLink": "images/bensen.jpg", "tag": "five", "name": "product5"},
{"imageLink": "images/marl.jpg", "tag": "six", "name": "product6"},
{"imageLink": "images/fs.jpg", "tag": "seven", "name": "product7"},
{"imageLink": "images/marl.jpg", "tag": "eight", "name": "product8"},
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.transparent,
elevation: 0,
title: Text(
"Home Page",
style: TextStyle(color: Colors.black, fontSize: 25),
),
),
body: Column(
children: [
Expanded(
child: ListView.builder(
scrollDirection: Axis.horizontal, // this scrollDirection is throwing error but when I remove this It works just fine
padding: EdgeInsets.symmetric(horizontal: 10),
itemCount: dataList.length,
itemBuilder: (context, index) {
return buidItem(
image: dataList[index]['imageLink'],
tag: dataList[index]['tag'],
name: dataList[index]['name'],
context: context);
}),
),
],
),
// This trailing comma makes auto-formatting nicer for build methods.
);
}
Widget buidItem(
{String image = "images/",
@required String tag,
@required String name,
@required BuildContext context}) {
return Material(
child: Hero(
tag: tag,
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => InfoPage(
image: image,
tag: tag,
name: name,
)));
},
child: Container(
height: 100,
width: double.infinity,
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.cover, image: AssetImage(image)),
),
),
)));
}
}