Beispiel #1
0
        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
                        )
                    )
            }
                       ));
        }
Beispiel #2
0
        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
                    )
            }
                           )
                       ));
        }