Fix episode list scroll on anime detail

This commit is contained in:
Moe Poi ~ 2020-09-07 23:03:58 +07:00
parent 430345f9b7
commit edcb747a1b

View file

@ -30,79 +30,77 @@ class AnimeDetail extends StatelessWidget {
return Text(error.toString()); return Text(error.toString());
}, },
renderSuccess: ({data}) { renderSuccess: ({data}) {
return Center( var allWidgets = [
child: ListView( Row(
children: [ children: [
Row( Flexible(
children: [ flex: 2,
Flexible( child: Container(
flex: 2, margin: EdgeInsets.all(8),
child: Container( child: ClipRRect(
margin: EdgeInsets.all(8), borderRadius: BorderRadius.circular(8.0),
child: ClipRRect( child: CachedNetworkImage(
borderRadius: BorderRadius.circular(8.0), imageUrl: data['image'],
child: CachedNetworkImage( placeholder: (context, url) =>
imageUrl: data['image'], CupertinoActivityIndicator(),
placeholder: (context, url) => CupertinoActivityIndicator(), errorWidget: (context, url, error) =>
errorWidget: (context, url, error) => Image.asset('lib/assets/image-error.jpg'), Image.asset('lib/assets/image-error.jpg'),
fadeOutDuration: Duration(milliseconds: 5), fadeOutDuration: Duration(milliseconds: 5),
imageBuilder: (context, imageProvider) => Container( imageBuilder: (context, imageProvider) => Container(
width: 120, width: 120,
height: 160, height: 160,
decoration: BoxDecoration( decoration: BoxDecoration(
image: DecorationImage( image: DecorationImage(
image: imageProvider, image: imageProvider, fit: BoxFit.cover),
fit: BoxFit.cover
),
),
), ),
), ),
), ),
), ),
), ),
Flexible(
flex: 4,
child: Container(
margin: EdgeInsets.all(8),
child: Text(
data['title'],
style: TextStyle(
fontSize: 20, fontWeight: FontWeight.w600),
)),
)
],
),
Card(
child: Container(
margin: EdgeInsets.all(8),
child: Text(data['description']),
), ),
Flexible(
flex: 4,
child: Container(
margin: EdgeInsets.all(8),
child: Text(
data['title'],
style: TextStyle(
fontSize: 20, fontWeight: FontWeight.w600),
)),
)
],
),
Card(
child: Container(
margin: EdgeInsets.all(8),
child: Text(data['description']),
), ),
),
];
final totalEps = data['episode_title'].length;
for (var x=0; x < totalEps; x++) {
allWidgets.add(
Container( Container(
height: 542,
padding: EdgeInsets.all(8), padding: EdgeInsets.all(8),
child: ListView.builder( child: CupertinoButton.filled(
itemCount: data['episode_title'].length, child: Text(data['episode_title'][x]),
itemBuilder: (context, index) { onPressed: () {
return Container( Navigator.push(
padding: EdgeInsets.all(8), context,
child: CupertinoButton.filled( MaterialPageRoute(
child: Text(data['episode_title'][index]), builder: (context) => EpisodeDetail(),
onPressed: () { settings: RouteSettings(arguments: {
Navigator.push( 'title': data['episode_title'][x],
context, 'url': data['episode_url'][x]
MaterialPageRoute( })));
builder: (context) => EpisodeDetail(), },
settings: RouteSettings(arguments: { )
'title': data['episode_title'][index], )
'url': data['episode_url'][index] );
}))); }
}, return Center(
), child: ListView(
); children: allWidgets
}),
),
],
)); ));
}), }),
), ),