浏览代码

尝试修复Bug:重新打开页面时图像选择的监听失效,导致无法选择图像

loki.wu 2 年之前
父节点
当前提交
69f4089cab
共有 2 个文件被更改,包括 45 次插入28 次删除
  1. 32 23
      lib/main.dart
  2. 13 5
      lib/report_edit.dart

+ 32 - 23
lib/main.dart

@@ -118,29 +118,38 @@ class _MyHomePageState extends State<MyHomePage> {
               ],
             ),
           ),
-          MaterialButton(
-              child: Text('testAI'),
-              onPressed: () {
-                ReportInfo.instance
-                    .reload('test', DateTime.now(), _aiJson, onSelect);
-              }),
-          MaterialButton(
-              child: Text('testDefault'),
-              onPressed: () {
-                ReportInfo.instance
-                    .reload('default', DateTime.now(), _jsonStr, onSelect);
-              }),
-          MaterialButton(
-              child: Text('testPet'),
-              onPressed: () {
-                ReportInfo.instance
-                    .reload('pet', DateTime.now(), _petStr, onSelect);
-              }),
-          MaterialButton(
-              child: Text('onClose'),
-              onPressed: () {
-                ReportInfo.instance.onClose.emit(this, null);
-              }),
+          Wrap(
+            children: [
+              MaterialButton(
+                  child: Text('testAI'),
+                  onPressed: () {
+                    ReportInfo.instance
+                        .reload('test', DateTime.now(), _aiJson, onSelect);
+                  }),
+              MaterialButton(
+                  child: Text('testDefault'),
+                  onPressed: () {
+                    ReportInfo.instance
+                        .reload('default', DateTime.now(), _jsonStr, onSelect);
+                  }),
+              MaterialButton(
+                  child: Text('testPet'),
+                  onPressed: () {
+                    ReportInfo.instance
+                        .reload('pet', DateTime.now(), _petStr, onSelect);
+                  }),
+              MaterialButton(
+                  child: Text('onClose'),
+                  onPressed: () {
+                    ReportInfo.instance.onClose.emit(this, null);
+                  }),
+              MaterialButton(
+                  child: Text('open'),
+                  onPressed: () {
+                    setState(() {});
+                  }),
+            ],
+          ),
         ],
       ),
     );

+ 13 - 5
lib/report_edit.dart

@@ -10,12 +10,13 @@ import 'package:fis_lib_report/report_info/report_info.dart';
 import 'package:flutter/material.dart';
 
 class ReportEditPage extends StatefulWidget {
-  const ReportEditPage({
+  ReportEditPage({
     Key? key,
     required this.reporter,
     required this.jsonStr,
     required this.reportDate,
     required this.onSelect,
+    this.isReload = true,
   }) : super(key: key);
 
   final FEventHandler<String> onSelect;
@@ -23,9 +24,12 @@ class ReportEditPage extends StatefulWidget {
   final String jsonStr;
   final String reporter;
   final DateTime reportDate;
+  bool isReload;
 
   @override
-  State<ReportEditPage> createState() => _ReportEditPageState();
+  State<ReportEditPage> createState() {
+    return _ReportEditPageState();
+  }
 }
 
 class _ReportEditPageState extends State<ReportEditPage> {
@@ -43,8 +47,8 @@ class _ReportEditPageState extends State<ReportEditPage> {
 
   @override
   initState() {
-    _intitTemplate();
-    _initListentener();
+    // _intitTemplate();
+    // _initListentener();
     super.initState();
   }
 
@@ -53,7 +57,11 @@ class _ReportEditPageState extends State<ReportEditPage> {
     if (widget.jsonStr.isEmpty) {
       return const SizedBox();
     }
-
+    if (widget.isReload) {
+      _intitTemplate();
+      _initListentener();
+      widget.isReload = false;
+    }
     final pagePadding = _reportTemplate.pagePadding ?? RTThickness.uniform(56);
     return Center(
       child: Container(