Explorar o código

Exclude semantics to improve performance of gallery

ashilkn %!s(int64=2) %!d(string=hai) anos
pai
achega
21e836643b

+ 3 - 1
lib/ui/huge_listview/huge_listview.dart

@@ -176,7 +176,9 @@ class HugeListViewState<T> extends State<HugeListView<T>> {
               initialScrollIndex: widget.startIndex,
               itemCount: max(widget.totalCount, 0),
               itemBuilder: (context, index) {
-                return widget.itemBuilder(context, index);
+                return ExcludeSemantics(
+                  child: widget.itemBuilder(context, index),
+                );
               },
             ),
           )

+ 11 - 9
lib/ui/viewer/gallery/component/grid/gallery_grid_view_widget.dart

@@ -31,15 +31,17 @@ class GalleryGridViewWidget extends StatelessWidget {
       physics: const NeverScrollableScrollPhysics(),
       // to disable GridView's scrolling
       itemBuilder: (context, index) {
-        return GalleryFileWidget(
-          file: filesInGroup[index],
-          selectedFiles: selectedFiles,
-          limitSelectionToOne: limitSelectionToOne,
-          tag: tag,
-          photoGridSize: photoGridSize,
-          currentUserID: currentUserID,
-          filesInGroup: filesInGroup,
-          asyncLoader: asyncLoader,
+        return ExcludeSemantics(
+          child: GalleryFileWidget(
+            file: filesInGroup[index],
+            selectedFiles: selectedFiles,
+            limitSelectionToOne: limitSelectionToOne,
+            tag: tag,
+            photoGridSize: photoGridSize,
+            currentUserID: currentUserID,
+            filesInGroup: filesInGroup,
+            asyncLoader: asyncLoader,
+          ),
         );
       },
       itemCount: filesInGroup.length,

+ 1 - 1
lib/ui/viewer/gallery/component/grid/place_holder_grid_view_widget.dart

@@ -32,7 +32,7 @@ class PlaceHolderGridViewWidget extends StatelessWidget {
         shrinkWrap: true,
         physics: const NeverScrollableScrollPhysics(),
         itemBuilder: (context, index) {
-          return Container(color: faintColor);
+          return ExcludeSemantics(child: Container(color: faintColor));
         },
         itemCount: limitCount,
         gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(

+ 2 - 0
test_driver/perf_driver.dart

@@ -1,6 +1,8 @@
 import 'package:flutter_driver/flutter_driver.dart' as driver;
 import 'package:integration_test/integration_test_driver.dart';
 
+///https://api.flutter.dev/flutter/flutter_driver/TimelineSummary/summaryJson.html
+
 Future<void> main() {
   return integrationDriver(
     responseDataCallback: (data) async {