import 'package:assets_audio_player/assets_audio_player.dart'; import 'package:flutter/material.dart'; import 'package:empty/constants.dart'; class GridListView extends StatefulWidget { final String type; final String section; final String rcmd; final int size; final int page; GridListView( {Key key, this.type, this.section, this.rcmd, this.size, this.page}) : super(key: key); @override _GridListViewState createState() => _GridListViewState(); } class _GridListViewState extends State { @override void initState() { // TODO: implement initState super.initState(); albumBloc.fetch(widget.type, widget.section); if (!isPlaying) panelController.hide(); } @override void dispose() { // TODO: implement dispose super.dispose(); } @override Widget build(BuildContext context) { return OrientationBuilder( builder: (context, orientation) { return SingleChildScrollView( physics: BouncingScrollPhysics(), child: Column( children: [ widget.type != '' && widget.section != '' ? Container( padding: EdgeInsets.only( top: 20, bottom: 10, left: 20, right: 20), child: Stack( children: [ kHeader[widget.type][widget.section]['icon'] != "" ? Container( padding: EdgeInsets.only(top: 10, bottom: 10), width: 150, height: 100, decoration: BoxDecoration( image: DecorationImage( alignment: Alignment.bottomCenter, image: AssetImage('assets/images/' + kHeader[widget.type] [widget.section]['icon']), fit: BoxFit.contain)), ) : Row(), Padding( padding: kHeader[widget.type][widget.section] ['icon'] != "" ? EdgeInsets.only(left: 120) : EdgeInsets.only(left: 0), child: Text( kHeader[widget.type][widget.section]['detail'], style: Theme.of(context).textTheme.bodyText1, ), ), ], )) : Container(), StreamBuilder( stream: albumBloc.albumResult, builder: (context, snapshot) { if (!snapshot.hasData) { return Center( child: CircularProgressIndicator(), ); } return GridView.builder( shrinkWrap: true, padding: EdgeInsets.only( top: 10, left: 10, right: 10, bottom: 250), gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: orientation == Orientation.portrait ? 2 : 4, ), physics: BouncingScrollPhysics(), itemCount: snapshot.data.result.length, itemBuilder: (BuildContext context, int index) { return GestureDetector( onTap: () async { // 개별결재/정기권/쿠폰사용 // snapshot.data.result[index].charge //print(snapshot.data.result[index].type); //print(snapshot.data.result[index].section); //print(snapshot.data.result[index].title); //print(kUrl + snapshot.data.result[index].poster.filename); //print(kUrl + snapshot.data.result[index].naration.filename); //snapshot.data.result[index].charge == '' // ? Icon(Icons.money, color: Colors.red, size: 30,) // : Container() panelController.show(); audios =