I have Page with Listview
which display the images in Horizontal scroll. Also, I have another listview
that display the images in bottom of the horizontal Listview
.
Now, when I check the Listview
data doing the Horizontal scroll and reach at last position of item, at that time, I check another data in bottom of listview
using vertical scroll, The first listview
is invisible. this is perfect. But when I scroll bottom to top, the Horizontal listview
still remain at last position instead of zero position. How can resolve it?
I have attached my code and screenshot what I want?
import 'package:flutter/material.dart';class HomePage1 extends StatefulWidget { @override _HomePageState createState() => _HomePageState();}class _HomePageState extends State<HomePage1> { BuildContext context; @override Widget build(BuildContext context) { this.context = context; // TODO: implement build return MaterialApp( debugShowCheckedModeBanner: false, home: Scaffold( appBar: AppBar( centerTitle: true, backgroundColor: Colors.white, title: Text('Demo App', style: TextStyle(color: Colors.black), ), ), body: SingleChildScrollView( scrollDirection: Axis.vertical, child: Column( children: <Widget>\[ _buildTrandingUI(), _buildcardwithimg('assets/blue.png', ''), _buildcardwithimg('assets/blue.png', ''), \], ), )), ); } @override void initState() { super.initState(); } //Design Sale UI _buildcardwithimg(String imgpath, String text) { return Container( height: 380, margin: const EdgeInsets.symmetric(vertical: 8.0), child: new Stack( children: <Widget>\[ new Container( margin: const EdgeInsets.only(right: 8.0, left: 8.0), decoration: new BoxDecoration( color: Colors.white, shape: BoxShape.rectangle, borderRadius: new BorderRadius.circular(8.0), boxShadow: <BoxShadow>\[ new BoxShadow( color: Colors.grey, blurRadius: 10.0, offset: new Offset(0.0, 10.0), ) \], image: DecorationImage( fit: BoxFit.cover, image: new AssetImage(imgpath)), ), child: new Container( alignment: Alignment.topLeft, padding: const EdgeInsets.all(10.0), child: Text( text, style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, fontSize: 14.0), ), ), ), \], ), ); } //Desing Tranding UI _buildTrandingUI() { List<String> titlearr = \[\]; titlearr.add('The Grunge Collection!'); titlearr.add('On Point!'); titlearr.add('A Fresh Edge To Every Wear'); titlearr.add('Up to 50% Off'); List<String> sbutitlearr = \[\]; sbutitlearr.add('Born For the Road'); sbutitlearr.add('Premium Bags That Steak The Spotlight'); sbutitlearr.add('Printed Tees'); sbutitlearr.add('Born For the Road'); List<String> Traimgarr = \[\]; Traimgarr.add('assets/grun.png'); Traimgarr.add('assets/onpoint.png'); Traimgarr.add('assets/grun.png'); Traimgarr.add('assets/onpoint.png'); return Container( height: 280.0, margin: const EdgeInsets.symmetric(vertical: 4.0), child: new Stack( children: <Widget>\[ new Container( margin: const EdgeInsets.only(left: 8.0, right: 8.0), decoration: new BoxDecoration( color: Colors.white, shape: BoxShape.rectangle, borderRadius: BorderRadius.circular(8.0), boxShadow: <BoxShadow>\[ new BoxShadow( color: Colors.grey, blurRadius: 10.0, offset: new Offset(0.0, 10.0), ) \]), child: new Container( alignment: Alignment.topLeft, padding: const EdgeInsets.all(10.0), child: Text('Trending Now', style: TextStyle(color: Colors.blueGrey), ), ), ), new Center( child: new Container( height: 245.0, margin: const EdgeInsets.only(left: 10.0, right: 10.0, top: 20.0), child: ListView.builder( scrollDirection: Axis.horizontal, itemCount: Traimgarr.length, itemBuilder: (context, index) { return Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.min, children: <Widget>\[ Container( height: 190.0, width: 280.0, margin: EdgeInsets.all(10.0), child: Image.asset( Traimgarr\[index\], fit: BoxFit.cover, ), ), Text( titlearr\[index\], style: TextStyle(fontWeight: FontWeight.bold), ), Text( sbutitlearr\[index\], style: TextStyle(color: Colors.grey), ) \], ); }), )) \], )); }}