首页 文章

颤动相机预览

提问于
浏览
2

我'm new to both Flutter and Dart, so bear with me. I' m试图使用Flutter来显示使用Camera Plugin的相机预览,并且有两个问题 . 1)预览被拉伸,所以事情看起来很奇怪 . 2)我希望在预览下方显示 BottomNavigationBar ,但Camera Preview使用所有屏幕空间 .

我初始化相机并打开预览:

@override
Widget build(BuildContext context) {

  if (!_isReady) return new Container();
  if (!controller.value.initialized) return new Container();

  return new CameraPreview(controller);
}

1)这是我称为 _CameraWidgetState 的类的构建方法 . 如何使此预览看起来不舒展?

2)为了使CameraWidget不使用所有空间,我已经尝试将它放在 Scaffold 里,没有运气:

Widget build(BuildContext context) {
return new Scaffold(
  appBar: new AppBar(
    title: new Text(widget.title),
  ),
  body: new Center(
    child: new CameraWidget(),
  ),
  bottomNavigationBar: new BottomNavigationBar(
    items: [
      new BottomNavigationBarItem(
          icon: new Icon(Icons.camera), title: new Text("Left")),

      new BottomNavigationBarItem(
          icon: new Icon(Icons.favorite),
          title: new Text("Right"))
    ],
  ),
);
}

任何想法或帮助表示赞赏!

1 回答

  • 1

    这解决了问题,但也可能有更好的解决方案 . (感谢上述评论中的@ user1462442 . )

    @override
    Widget build(BuildContext context) {
     if (!_isReady) return new Container();
     if (!controller.value.initialized) return new Container();
    
     return new Scaffold(
       body: new Container(
         child: new AspectRatio(
           aspectRatio: controller.value.aspectRatio,
           child: new CameraPreview(controller),
         ),
       ),
       floatingActionButton: new FloatingActionButton(
         onPressed: _isReady ? capture : null,
         child: const Icon(
           Icons.camera,
           color: Colors.white,
         ),
       ),
       floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
     );
    }
    

相关问题