首页 > 解决方案 > 如何在相机视图上定位项目

问题描述

我想在我的相机视图上添加一个 Flutter XLider。滑块应控制缩放功能。

我想实现:

FlutterSlider(
  values: [300],
  max: 500,
  min: 0,
axis: Axis.vertical,
  onDragging: (handlerIndex, lowerValue, upperValue) {
    _lowerValue = lowerValue;
    _upperValue = upperValue;
    setState(() {});
  },
)

        body: Container(
          margin: EdgeInsets.symmetric(
              horizontal: _flaslightOn ? 50.0 : 0.0,
              vertical: _flaslightOn ? 50.0 : 0.0),
          //switch between 30 and zero when click on light
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              new ClipRRect(
                borderRadius: BorderRadius.circular(_flaslightOn ? 10.0 : 0.0),
                child: Column(
                  children: [
                    new Transform.scale(
                      scale: _scale, //TODO change scale when click + or -
                      child: new AspectRatio(
                          aspectRatio: cameraController.value.aspectRatio,
                          child: cameraPreview),
                    )
                  ],
                ),
              ),
            ],
          ),
        ),

        ...
  }

你怎么能把颤振滑块放在右下角,让它在相机上分层?

标签: layoutflutterdart

解决方案


请使用此代码。

body:Stack(

    fit: StackFit.expand,
    children:<Widget>[ Container(
      margin: EdgeInsets.symmetric(
          horizontal: _flaslightOn ? 50.0 : 0.0,
          vertical: _flaslightOn ? 50.0 : 0.0),
      //switch between 30 and zero when click on light
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          new ClipRRect(
            borderRadius: BorderRadius.circular(_flaslightOn ? 10.0 : 0.0),
            child: Column(
              children: [
                new Transform.scale(
                  scale: _scale, //TODO change scale when click + or -
                  child: new AspectRatio(
                      aspectRatio: cameraController.value.aspectRatio,
                      child: cameraPreview),
                )
              ],
            ),
          ),
        ],
      ),
    ),
    Container(
      alignment: Alignment.bottomRight,
      child: FlutterSlider(
  values: [300],
  max: 500,
  min: 0,
axis: Axis.vertical,
  onDragging: (handlerIndex, lowerValue, upperValue) {
    _lowerValue = lowerValue;
    _upperValue = upperValue;
    setState(() {});
  },
)
    )

    ])
);
}

谢谢


推荐阅读