簡體   English   中英

Flutter:如何在容器內添加浮動操作按鈕

[英]Flutter: How do I add a floatingactionbutton inside a container

我有以下代碼,我想添加一個浮動操作按鈕來打開和關閉相機 flash。我嘗試了不同的方法但無法做到。 任何建議都會有所幫助。 我厭倦了不同的包,如手電筒、手電筒等,但它沒有用,我想是因為我已經給相機打電話了 package

import 'package:camera/camera.dart';
import 'package:flutter/material.dart';

class CameraScreen extends StatefulWidget {
CameraScreen({Key key, @required this.controller}) : super(key: key);
final CameraController controller;
@override
_CameraScreenState createState() => _CameraScreenState();
  }

class _CameraScreenState extends State<CameraScreen> {
@override
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size.width;

return Container(
  child: ShaderMask(
    shaderCallback: (rect) {
      return LinearGradient(
              begin: Alignment.topCenter,
              end: Alignment.center,
              colors: [Colors.black, Colors.transparent])
          .createShader(Rect.fromLTRB(0, 0, rect.width, rect.height / 4));
    },
    blendMode: BlendMode.darken,
    child: Transform.scale(
      scale: 1.0,
      child: AspectRatio(
        aspectRatio: MediaQuery.of(context).size.aspectRatio,
        child: OverflowBox(
          alignment: Alignment.center,
          child: FittedBox(
            fit: BoxFit.fitHeight,
            child: Container(
              width: size,
              height: size / widget.controller.value.aspectRatio,
              child: Stack(
                children: <Widget>[
                  CameraPreview(widget.controller),
                ],
              ),
            ),
          ),
        ),
      ),
    ),
  )
);
 }

   @override
   void dispose() {
      super.dispose();
    }
    }

你可以用scaffold包裹你的小部件,並可以在scaffold內添加浮動按鈕,如下所示:

 @override
  Widget build(BuildContext context) {
    final size = MediaQuery.of(context).size.width;
    return Scaffold(
      floatingActionButton: FloatingActionButton(onPressed: (){},),
      body: ShaderMask(
        shaderCallback: (rect) {
      return const LinearGradient(
              begin: Alignment.topCenter,
              end: Alignment.center,
              colors: [Colors.black, Colors.transparent])
          .createShader(Rect.fr

    ///// your code ///////

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM