public override Widget build(BuildContext context) { Widget coverImageWidget; Color coverImageColor; var coverImageWidth = MediaQuery.of(context).size.width; if (this.coverImage.isNotEmpty()) { coverImageWidget = new PlaceholderImage( imageUrl: this.coverImage, height: this.height, width: coverImageWidth, fit: BoxFit.cover ); coverImageColor = Color.fromRGBO(0, 0, 0, 0.4f); } else { coverImageWidget = new Container( color: CColors.Black, child: Image.asset( "image/default-background-cover", height: this.height, width: coverImageWidth, fit: BoxFit.cover ) ); coverImageColor = CColors.Transparent; } return(new Stack( children: new List <Widget> { coverImageWidget, Positioned.fill( new Container( color: coverImageColor, child: this.child ) ) } )); }
public override Widget build(BuildContext context) { if (this.images.isNullOrEmpty()) { return(new Container()); } Widget firstImage; if (this.images.Count > 0) { firstImage = new PlaceholderImage( CImageUtils.SuitableSizeImageUrl( imageWidth: MediaQuery.of(context: context).size.width, this.images[0] ), this.size + this.ratioGap * 2, this.size + this.ratioGap * 2, 6, fit: BoxFit.cover, true, CColorUtils.GetSpecificDarkColorFromId(this.images[0]) ); } else { firstImage = new Container(); } Widget secondImage; if (this.images.Count > 1) { secondImage = this.onlyShowFirst ? (Widget) new Container( width: this.size + this.ratioGap * 2, height: this.size + this.ratioGap * 2, decoration: new BoxDecoration(borderRadius: BorderRadius.all(6), color: Color.fromRGBO(207, 213, 219, 1)) ) : new PlaceholderImage( CImageUtils.SuitableSizeImageUrl( imageWidth: MediaQuery.of(context: context).size.width, this.images[1] ), this.size + this.ratioGap, this.size + this.ratioGap, 6, fit: BoxFit.cover, true, CColorUtils.GetSpecificDarkColorFromId(this.images[1]) ); } else { secondImage = new Container(); } Widget thirdImage; if (this.images.Count > 2) { thirdImage = this.onlyShowFirst ? (Widget) new Container( width: this.size + this.ratioGap * 2, height: this.size + this.ratioGap * 2, decoration: new BoxDecoration(borderRadius: BorderRadius.all(6), color: Color.fromRGBO(137, 150, 165, 1)) ) : new PlaceholderImage( CImageUtils.SuitableSizeImageUrl( imageWidth: MediaQuery.of(context: context).size.width, this.images[2] ), width: this.size, height: this.size, 6, fit: BoxFit.cover, true, CColorUtils.GetSpecificDarkColorFromId(this.images[2]) ); } else { thirdImage = new Container(); } return(new Container( width: this.size + this.ratioGap * 2 + this.horizontalGap * (this.images.Count - 1), height: this.size + this.ratioGap * 2 + this.verticalGap * (this.images.Count - 1), child: new Stack( children: new List <Widget> { new Positioned( right: 0, bottom: 0, child: thirdImage ), new Positioned( right: this.horizontalGap, bottom: this.verticalGap, child: secondImage ), new Positioned( left: 0, top: 0, child: firstImage ) } ) )); }