【发布时间】:2021-03-14 03:06:01
【问题描述】:
我的代码在 Column 中不使用 StaggeredGridView.count() 时运行良好。谁能帮我吗 ?我是 Flutter 的新手!
import 'package:flutter/material.dart';
import 'package:http/http.dart';
import 'smooth_star_rating.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
void main() => runApp(MaterialApp(
theme: ThemeData(primaryColor: Colors.black),
home: Home(),
));
class Home extends StatelessWidget {
Container TopArtist(String imageVal, String heading, double count) {
return Container(
width: 200,
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(15.0))),
color: Color(0xFFf2630a),
child: Wrap(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: ClipOval(
child: Center(
child: Material(
elevation: 4.0,
shape: CircleBorder(),
clipBehavior: Clip.hardEdge,
color: Colors.transparent,
child: Ink.image(
image: AssetImage(imageVal),
padding: const EdgeInsets.all(8.0),
fit: BoxFit.cover,
width: 160.0,
height: 160.0,
child: InkWell(
onTap: () {},
),
),
),
),
),
),
ListTile(
title: Text(
heading,
textAlign: TextAlign.center,
style: TextStyle(color: Colors.white, fontFamily: 'Mulish'),
),
subtitle: Center(
child: SmoothStarRating(
allowHalfRating: true,
starCount: 5,
rating: count,
size: 20,
color: Colors.black,
borderColor: Colors.white,
),
),
),
],
),
),
);
}
Material MyItems(IconData icon, String heading, int color) {
return Material(
color: Colors.white,
elevation: 14.0,
shadowColor: Color(0x802196F3),
borderRadius: BorderRadius.circular(24.0),
child: Center(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
heading,
style: TextStyle(color: new Color(color), fontSize: 20),
),
),
Material(
color: new Color(color),
borderRadius: BorderRadius.circular(24.0),
child: Padding(
padding: const EdgeInsets.all(16.0),
child: Icon(
icon,
color: Colors.white,
size: 30.0,
),
),
),
],
)
],
),
),
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Project Title", style: TextStyle(color: Color(0xFFf2630a))),
backgroundColor: Colors.white,
),
body: Column(
children: [
Container(
color: Colors.grey[300],
child: Column(
children: [
Container(
color: Color(0xFFf2630a),
child: Padding(
padding: const EdgeInsets.all(18.0),
child: TextField(
decoration: InputDecoration(
fillColor: Colors.white,
filled: true,
border: InputBorder.none,
suffixIcon: Icon(Icons.search),
hintText: 'What are you looking for ?'),
),
),
),
Container(
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Text(
"Top Artist",
style: TextStyle(color: Color(0xFFf2630a), fontSize: 25),
),
),
),
Container(
child: Divider(
color: Colors.black,
height: 20,
thickness: 3,
indent: 180,
endIndent: 180,
),
),
Container(
padding: EdgeInsets.symmetric(vertical: 20),
height: 300,
child: ListView(
scrollDirection: Axis.horizontal,
children: [
TopArtist("assets/avatar.jpg", "Heading", 3),
TopArtist("assets/avatar.jpg", "Heading", 4),
TopArtist("assets/avatar.jpg", "Heading", 5),
TopArtist("assets/avatar.jpg", "Heading", 1),
TopArtist("assets/avatar.jpg", "Heading", 2),
TopArtist("assets/avatar.jpg", "Heading", 5),
],
),
),
],
),
),
Container(
child: Column(
children: [
Container(
child: Padding(
padding: const EdgeInsets.all(12.0),
child: Text(
"Categories",
style: TextStyle(color: Color(0xFFf2630a), fontSize: 25),
),
),
),
Container(
child: Divider(
color: Colors.black,
height: 20,
thickness: 3,
indent: 180,
endIndent: 180,
),
),
Container(
child: Expanded(
child: StaggeredGridView.count(
crossAxisCount: 2,
crossAxisSpacing: 12.0,
mainAxisSpacing: 12.0,
padding:
EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
children: [
MyItems(Icons.graphic_eq, "TotalViews", 0xffed622b),
MyItems(Icons.graphic_eq, "TotalViews", 0xffed622b),
MyItems(Icons.graphic_eq, "TotalViews", 0xffed622b),
MyItems(Icons.graphic_eq, "TotalViews", 0xffed622b),
MyItems(Icons.graphic_eq, "TotalViews", 0xffed622b),
MyItems(Icons.graphic_eq, "TotalViews", 0xffed622b),
],
staggeredTiles: [
StaggeredTile.extent(1, 130),
StaggeredTile.extent(1, 130),
StaggeredTile.extent(1, 130),
StaggeredTile.extent(1, 130),
StaggeredTile.extent(1, 130),
StaggeredTile.extent(1, 130),
],
),
),
),
],
),
),
],
),
);
}
}
【问题讨论】:
标签: flutter flutter-layout flutter-dependencies flutter-animation flutter-test