• 當前位置:首頁 > IT技術 > 移動平臺 > 正文

    直播源碼APP的最佳掃碼插件,實現自定義視圖
    2021-09-15 15:05:08

    直播源碼APP的最佳掃碼插件,實現自定義視圖的相關代碼
    實現自定義視圖:

    class CustomizedView extends StatefulWidget {
    @override
    _CustomizedViewState createState() => _CustomizedViewState();
    }
    
    const boxSize = 200.0;
    
    class _CustomizedViewState extends State<CustomizedView> {
    late ScanKitController _controller;
    
    final screenWidth = window.physicalSize.width;
    final screenHeight = window.physicalSize.height;
    
    @override
    void dispose(){
    _controller.dispose();
    super.dispose();
    }
    
    @override
    Widget build(BuildContext context) {
    var pixelSize = boxSize * window.devicePixelRatio;
    var left = screenWidth/2 - pixelSize/2;
    var top = screenHeight/2 - pixelSize/2;
    var right = screenWidth/2 + pixelSize/2;
    var bottom = screenHeight/2 + pixelSize/2;
    var rect = Rect.fromLTRB(left, top, right, bottom);
    
    return Scaffold(
    body: SafeArea(
    child: Stack(
    children: [
    ScanKitWidget(
    callback: (controller) {
    _controller = controller;
    
    controller.onResult.listen((result) {
    debugPrint("scanning result:$result");
    
    Navigator.of(context).pop(result);
    });
    },
    continuouslyScan: false,
    boundingBox: rect),
    Align(
    alignment: Alignment.topCenter,
    child: Row(
    mainAxisAlignment: MainAxisAlignment.spaceBetween,
    children: [
    IconButton(
    onPressed: () {
    Navigator.of(context).pop();
    },
    icon: Icon(
    Icons.arrow_back,
    color: Colors.white,
    size: 28,
    )),
    IconButton(
    onPressed: () {
    _controller.switchLight();
    },
    icon: Icon(
    Icons.lightbulb_outline_rounded,
    color: Colors.white,
    size: 28,
    )),
    IconButton(
    onPressed: () {
    _controller.pickPhoto();
    },
    icon: Icon(
    Icons.picture_in_picture_rounded,
    color: Colors.white,
    size: 28,
    ))
    ],
    ),
    ),
    
    Align(
    alignment: Alignment.center,
    child: Container(
    width: boxSize,
    height: boxSize,
    decoration: BoxDecoration(
    border: Border(
    left: BorderSide(color: Colors.orangeAccent, width: 2),
    right: BorderSide(color: Colors.orangeAccent, width: 2),
    top: BorderSide(color: Colors.orangeAccent, width: 2),
    bottom: BorderSide(color: Colors.orangeAccent, width: 2)),
    ),
    ),
    )
    ],
    ),
    ),
    );
    }
    }

    ?

    拉起自定義視圖:

    Future<void> newPage(BuildContext context) async {
    var code = await Navigator.of(context).push(MaterialPageRoute(
    builder: (BuildContext context) {
    return CustomizedView();
    }
    ));
    
    setState(() {
    this.code = code ?? "";
    });
    }

    以上就是 直播源碼APP的最佳掃碼插件,實現自定義視圖的相關代碼,更多內容歡迎關注之后的文章

    本文摘自 :https://www.cnblogs.com/

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码