Flutter 无法在颤振中滚动listview内的交错gridview
我在Listview中添加了交错网格视图作为一个小部件。图像和所有内容都可以完美加载,但我不能在指向交错网格视图时滚动它。但是整个页面可以逐点滚动到列表视图的其他部分。 我已经附上了下面的代码。谁能帮我解决这个问题Flutter 无法在颤振中滚动listview内的交错gridview,flutter,listview,dart,Flutter,Listview,Dart,我在Listview中添加了交错网格视图作为一个小部件。图像和所有内容都可以完美加载,但我不能在指向交错网格视图时滚动它。但是整个页面可以逐点滚动到列表视图的其他部分。 我已经附上了下面的代码。谁能帮我解决这个问题 import 'package:beata2/services/sign_in.dart'; import 'package:beata2/ui/fashion.dart'; import 'package:beata2/ui/firstScreen.dart'; import 'p
import 'package:beata2/services/sign_in.dart';
import 'package:beata2/ui/fashion.dart';
import 'package:beata2/ui/firstScreen.dart';
import 'package:beata2/ui/hotDeals.dart';
import 'package:carousel_pro/carousel_pro.dart';
import 'package:carousel_slider/carousel_slider.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'add_card_for_gride.dart';
import 'car_item_model.dart';
class Dashboard extends StatefulWidget {
@override
_DashboardState createState() => _DashboardState();
}
class _DashboardState extends State<Dashboard> {
String carBand;
String carYear;
String carImage;
CarModel carObjec = new CarModel("carBand","carYear","carImage");
var car;
List<CarModel> _listOfObjects = <CarModel>[];
@override
void initState() {
// TODO: implement initState
carObjec.getData().then((result) {
setState(() {
car = result;
});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView(
children: <Widget>[
SizedBox(
height: 350.0,
width: 450.0,
child: Stack(
children: [
SizedBox(
height: 250.0,
child: AppBar(
title: Text("Welcome"),
backgroundColor: Colors.blue,
leading: IconButton(
icon: Icon(Icons.menu),
onPressed: () {},
),
elevation: 0.0,
),
),
Positioned(
left: 0.0,
right: 0.0,
top: 100.0,
bottom: 0.0,
child: Container(
child: CarouselSlider(
items: [
'https://www.crn.com/resources/025c-0f3247198c32-7caef631a12d-1000/pets.jpg',
'https://cdn.aohostels.com/img/infos/pets/Header-Pets-C.jpg',
].map((e) {
return ClipRRect(
borderRadius:
BorderRadius.all(Radius.circular(10.0)),
child: Container(
child: GestureDetector(
child: Image.network(e, fit: BoxFit.fill),
onTap: () {
switch (e) {
case "https://www.crn.com/resources/025c-0f3247198c32-7caef631a12d-1000/pets.jpg":
Navigator.push<Widget>(
context,
MaterialPageRoute(
builder: (context) => Fashion(),
),
);
break;
case "https://cdn.aohostels.com/img/infos/pets/Header-Pets-C.jpg":
Navigator.push<Widget>(
context,
MaterialPageRoute(
builder: (context) => HotDeals(),
),
);
break;
default:
return Text(' ');
break;
}
}),
));
}).toList(),
options: CarouselOptions(
height: 350.0,
aspectRatio: 16 / 9,
viewportFraction: 0.8,
initialPage: 0,
enableInfiniteScroll: true,
reverse: false,
autoPlay: true,
autoPlayInterval: Duration(seconds: 3),
autoPlayAnimationDuration: Duration(milliseconds: 800),
autoPlayCurve: Curves.fastOutSlowIn,
enlargeCenterPage: true,
scrollDirection: Axis.horizontal,
)),
),
),
],
),
),
Padding(
padding: EdgeInsets.all(8.0),
child: Text("Categories"),
),
Container(
height: 30.0,
child: ListView(
scrollDirection: Axis.horizontal,
children: <Widget>[
Category(
image_location: 'assets/interface.png',
image_caption: 'Categories',
),
Category(
image_location: 'assets/interface.png',
image_caption: 'Categories',
),
Category(
image_location: 'assets/interface.png',
image_caption: 'Categories',
),
Icon(Icons.add),
Icon(Icons.add),
Icon(Icons.add),
Icon(Icons.add),
Icon(Icons.add),
Icon(Icons.add),
],
),
),
Padding(
padding: EdgeInsets.all(30.0),
child: Text("All"),
),
StreamBuilder(
stream: car,
builder: (context, snapshot) {
if (snapshot.hasData) {
for (int i = 0; i < snapshot.data.documents.length; i++) {
// DocumentSnapshot snap = snapshot.data.documents[i];
String carBrand =
snapshot.data.documents[i].data['carBrand'];
String caryear = snapshot.data.documents[i].data['carYear'];
String carimage =
snapshot.data.documents[i].data['urls'][0];
_listOfObjects.add(CarModel(carBrand,caryear,carimage));
}
return sliverGridWidget(context);
} else {
return Text("loading");
}
}
),
],
));
}
Widget sliverGridWidget(context) {
return StaggeredGridView.countBuilder(
padding: const EdgeInsets.all(8.0),
shrinkWrap: true,
primary: true,
crossAxisCount: 4,
itemCount: _listOfObjects.length, //staticData.length,
// itemBuilder: (context, index) {
// return Card(
// elevation: 8.0,
// child: InkWell(
// child: Hero(
// tag: index, // staticData[index].images,
// child: new FadeInImage(
// width: MediaQuery.of(context).size.width,
// image: NetworkImage(
// "https://images.unsplash.com/photo-1468327768560-75b778cbb551?ixlib=rb-1.2.1&w=1000&q=80"), // NetworkImage(staticData[index].images),
// fit: BoxFit.cover,
// placeholder: AssetImage("assets/images/app_logo.png"),
// ),
// ),
// onTap: () {
// //
// }
// )
// );
// },
itemBuilder: (BuildContext context, int index) {
return AadCardForGrid(_listOfObjects[index]);
},
staggeredTileBuilder: (int index) => StaggeredTile.fit(2),
mainAxisSpacing: 4.0,
crossAxisSpacing: 4.0,
);
}
}
class Category extends StatelessWidget {
final String image_location;
final String image_caption;
Category({
this.image_location,
this.image_caption,
});
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.all(2.0),
child: InkWell(
onTap: () {},
child: Container(
width: 100.0,
child: ListTile(
title: Image.asset(
image_location,
width: 100.0,
height: 80.0,
),
subtitle: Text(image_caption),
),
),
));
}
}
import'程序包:beata2/services/sign_in.dart';
导入“包:beata2/ui/fashion.dart”;
导入“package:beata2/ui/firstScreen.dart”;
导入“包:beata2/ui/hotDeals.dart”;
导入“包装:旋转木马专业版/旋转木马专业版省道”;
导入“package:carousel_slider/carousel_slider.dart”;
导入“包:cloud_firestore/cloud_firestore.dart”;
进口“包装:颤振/材料.省道”;
导入“包:颤振交错网格视图/颤振交错网格视图.省道”;
导入'add_card_for_grid.dart';
导入“car_item_model.dart”;
类Dashboard扩展StatefulWidget{
@凌驾
_DashboardState createState()=>\u DashboardState();
}
类_仪表板状态扩展状态{
串碳带;
每年;
字符串carImage;
CarModel carObjec=新CarModel(“卡邦”、“卡年”、“卡里梅”);
var汽车;
列表_listOfObjects=[];
@凌驾
void initState(){
//TODO:实现initState
carObjec.getData().then((结果){
设置状态(){
car=结果;
});
});
super.initState();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:ListView(
儿童:[
大小盒子(
高度:350.0,
宽度:450.0,
子:堆栈(
儿童:[
大小盒子(
高度:250.0,
孩子:AppBar(
标题:文本(“欢迎”),
背景颜色:Colors.blue,
领先:IconButton(
图标:图标(图标菜单),
按下:(){},
),
标高:0.0,
),
),
定位(
左:0.0,
右:0.0,
排名:100.0,
底部:0.0,
子:容器(
儿童:旋转滑翔机(
项目:[
'https://www.crn.com/resources/025c-0f3247198c32-7caef631a12d-1000/pets.jpg',
'https://cdn.aohostels.com/img/infos/pets/Header-Pets-C.jpg',
].地图((e){
返回ClipRRect(
边界半径:
边界半径所有(半径圆形(10.0)),
子:容器(
儿童:手势检测器(
子项:Image.network(e,fit:BoxFit.fill),
onTap:(){
开关(e){
案例”https://www.crn.com/resources/025c-0f3247198c32-7caef631a12d-1000/pets.jpg":
导航器。推(
上下文
材料路线(
生成器:(上下文)=>Fashion(),
),
);
打破
案例”https://cdn.aohostels.com/img/infos/pets/Header-Pets-C.jpg":
导航器。推(
上下文
材料路线(
生成器:(上下文)=>HotDeals(),
),
);
打破
违约:
返回文本(“”);
打破
}
}),
));
}).toList(),
选项:旋转木马(
高度:350.0,
专题:16/9,
视口分数:0.8,
初始页:0,
启用无限滚动:正确,
反面:错,
自动播放:对,
自动播放间隔:持续时间(秒数:3),
autoPlayAnimationDuration:持续时间(毫秒:800),
自动播放曲线:Curves.FastOutSwowin,
放大中心页:正确,
滚动方向:轴水平,
)),
),
),
],
),
),
填充物(
填充:边缘设置。全部(8.0),
子:文本(“类别”),
),
容器(
身高:30.0,
子:ListView(
滚动方向:轴水平,
儿童:[
类别(
图像_位置:“assets/interface.png”,
图片标题:“类别”,
),
类别(
图像_位置:“assets/interface.png”,
图片标题:“类别”,
),
类别(
图像_位置:“assets/interface.png”,
图片标题:“类别”,
),
图标(Icons.add),
图标(Icons.add),
图标(Icons.add),
图标(Icons.add),
图标(Icons.add),
图标(Icons.add),
],
),
),
填充物(
填充:所有边缘设置(30.0),
子项:文本(“全部”),
),
StreamBuilder(
溪流:c