Автопрокрутка списка изображений ListView.builder до последнего flutter
Всем здравствуйте. У меня есть список PageListView. Он получает из api данные и на их основе формирует список карточек. Внутри карточки есть ListView.builder (он формирует что-то вроде слайдера из изображений. Пока карточка находится на экране - всё работает нормально. Но стоит сделать скролл, а потом вернуться к тому же месту и изображения в карточке автопрокручиваются в конец. Нужно, чтобы они сохраняли своё положение. Пример кода моей карточки
import 'package:flutter/material.dart';
import 'package:ocoche/res/app_colors.dart';
import 'package:ocoche/views/user/sign/sign_in.dart';
import 'package:ocoche/widgets/vehicle/ads_form/title_form.dart';
Widget adsCard(
var function, String title, String price, List photos, String description,String address,var favoriteFunction,bool isVin, bool isTop, bool isFavorite,String day,var signFunction,var key) {
//int countOfPage;
if( photos.length!=0){
int indexOfMove;
for(int i = 0; i <photos.length; i++){
if(photos[i].main==true){
indexOfMove = i;
}
}
print('indexOfMove - $indexOfMove');
var temp = photos[0];
photos[0]=photos[indexOfMove];
photos[indexOfMove]= temp;
// countOfPage = photos.length~/16;
}
return InkWell(
//key:UniqueKey(),
onTap: function,
child: Container(
decoration: BoxDecoration(borderRadius: BorderRadius.all(Radius.circular(8.0)), color:AppColors.white,),
width: 343.0,
height: 377.0,
margin:EdgeInsets.only(left:16.0,right:16.0,bottom:16.0),
padding: EdgeInsets.all(16.0),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
titleForm(title, EdgeInsets.zero, 17.0, FontWeight.w500,
letterSpacing: -0.08,
color: AppColors.indigo700,
lineHeight: 24.0,
alignment: Alignment.centerLeft),
InkWell(
child: isFavorite
? Container(
padding: EdgeInsets.only(left:2.5,right:2.5,top:1.5,bottom:1.0),
child: Image.asset(
'assets/iconsNew/icon-bookmark.png',
width: 20.0,
height: 20.0,
color: AppColors.yellow700,
),
)
: Image.asset(
'assets/iconsNew/bookmark-appBar.png',
width: 24.0,
height: 24.0,
color: AppColors.indigo400,
),
onTap: isAuthorization ?favoriteFunction : signFunction,
)
,
],
),
titleForm('€ ' + price.toString(),
EdgeInsets.only(top: 8.0, bottom: 14.0), 21.0, FontWeight.w900,
lineHeight: 20.0,
letterSpacing: -0.08,
alignment: Alignment.centerLeft,
color: AppColors.indigo700),
Container(
height: 184.0,
child:
photos.length==0
?Image.asset('images/default_auto.png', fit:BoxFit.cover,width:295.0,height:184.0)
:
ListView.builder(
shrinkWrap: true,
itemCount: photos.length,
scrollDirection:Axis.horizontal,
itemBuilder: (BuildContext context, int index) {
return Container(
margin:EdgeInsets.only(right:2.0),
child: Image.network(photos[index].url, fit:BoxFit.cover,width:295.0,height:184.0));}
),
),
// CarouselSlider.builder(
// //carouselController: carouselController,
// itemCount: photos.length,
// itemBuilder: (BuildContext context, int index, int i) {
// return Container(
// margin: EdgeInsets.only(right:2.0),
// decoration: BoxDecoration(
// image: DecorationImage(
// image: NetworkImage(photos[index].url),
// fit: BoxFit.cover,
// ),
// ),
// );
// },
// options: CarouselOptions(
// height: 184.0,
// viewportFraction: 1,
// enableInfiniteScroll: false,
// enlargeCenterPage: false,
// reverse: false,
// initialPage: 0,
// scrollDirection: Axis.horizontal,
// onPageChanged: (index, reason) {})),
titleForm(description, EdgeInsets.only(top: 16.0, bottom: 10.0),
15.0, FontWeight.normal,
lineHeight: 16.0,
letterSpacing: 0.07,
alignment: Alignment.centerLeft,
color: AppColors.indigo700),
Row(
children: [
isVin ?Image.asset('assets/iconsNew/icon-top.png',
width: 36.0, height: 16.0):SizedBox(height:16.0),
SizedBox(width: 4.0),
isTop ? Image.asset('assets/iconsNew/icon-vin.png',
width: 36.0, height: 16.0) :SizedBox(height: 16.0,)
],
),
Container(
margin:EdgeInsets.only(top:10.0,bottom:10.0),
child: Divider(color: AppColors.indigo100,height:1.0)),
Row(
children: [
titleForm(address, EdgeInsets.zero, 13.0, FontWeight.normal,lineHeight: 16.0,letterSpacing: 0.07,color:AppColors.indigo500,alignment:Alignment.centerLeft),
titleForm('•', EdgeInsets.only(left:4.0,right:4.0), 13.0, FontWeight.normal,lineHeight: 16.0,letterSpacing: 0.07,color:AppColors.indigo500,alignment:Alignment.centerLeft),
titleForm(day, EdgeInsets.zero, 13.0, FontWeight.normal,lineHeight: 16.0,letterSpacing: 0.07,color:AppColors.indigo500,alignment:Alignment.centerLeft),
],
)
],
)),
);
}