Home > Enterprise >  How to get new widget's width and height after being scaled using Transformer.scale
How to get new widget's width and height after being scaled using Transformer.scale

Time:10-10

i have the following code for scaling widget

double  scale= 0.8;
double widthAndHeight = 200 ;
@override
  Widget build(BuildContext context) {
    return  Scaffold(
      body: Center(
        child: GestureDetector(
            onScaleUpdate: (detail){
              scale=detail.scale;
              setState(() {});
            },
          child: Transform.scale(
            scale: scale,
            child: Container(
              color: Colors.blueAccent,
              width: widthAndHeight,
              height: widthAndHeight,
            ),
          ),
        ),
      )
    );
  }
}

The scaling is done correctly but I noticed that the width and height of the original container which is 200 remain exactly the same even though the scaling has been changed and updated !!

Question : How can I get the new real width and height of the container after each scalin and updating proces

Note : I tried to used LayoutBuilder() to try to find the new width and height, but it also gives the same first value !

CodePudding user response:

in this case, Transform will not update your widthAndHeight, it just calculate new width and height with your scale value.

So the easiest way to get new width and height is write your own function :

double getNewWidthAndHeight => scale * widthAndHeight
  • Related