import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:learning/App/Contanse/app_contanse.dart';
import 'package:learning/Core/Services/services_locator.dart';
import 'package:learning/Core/Utils/size.dart';
import 'package:learning/Domain/Entites/novel.dart';
import 'package:learning/Presentation/Controller/Novel/novel_cubit.dart';
import 'package:learning/Presentation/Resources/Fonts/style_manager.dart';
import 'package:skeletonizer/skeletonizer.dart';

import '../Resources/Colors/color_manger.dart';

import '../Resources/Strings/stings_manager.dart';
import '../Resources/Theme/theme_manager.dart';
import '../Resources/Values/values_manger.dart';
import 'detail_screen.dart';

class HomeScreen extends StatelessWidget {
  const HomeScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        decoration: BoxDecoration(
          gradient: LinearGradient(
            begin: Alignment.topCenter,
            end: Alignment.bottomCenter,
            colors: Theme.of(context).brightness == Brightness.light
                ? ColorManger.homePageGradiantLight
                : ColorManger.homePageGradiantDark,
          ),
        ),
        child: CustomScrollView(
          slivers: [
            SliverToBoxAdapter(
              child: BlocBuilder<NovelCubit, NovelState>(
                builder: (context, novelState) {
                  if (novelState is NovelLoading) {
                    return Skeletonizer(
                      child: Column(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Container(
                            height: SizeConfig.size.height * 0.30,
                            width: SizeConfig.size.width * 0.45,
                            decoration: BoxDecoration(
                              color: Colors.grey[800], // Placeholder for image
                              borderRadius: BorderRadius.circular(
                                  BorderRadiusManager.b16),
                            ),
                          ),
                          Container(
                            margin: const EdgeInsets.symmetric(vertical: 8),
                            height: 20,
                            width: SizeConfig.size.width * 0.6,
                            color: Colors.grey[700], // Placeholder for title
                          ),
                          Container(
                            height: 16,
                            width: SizeConfig.size.width * 0.3,
                            color: Colors.grey[700], // Placeholder for author
                          ),
                          const SizedBox(height: 5),
                          Container(
                            height: 40,
                            width: SizeConfig.size.width * 0.3,
                            decoration: BoxDecoration(
                              color: Colors.grey[800], // Placeholder for button
                              borderRadius: BorderRadius.circular(
                                  BorderRadiusManager.b19),
                            ),
                          ),
                        ],
                      ),
                    );
                  } else if (novelState is NovelSuccessfullyLoaded) {
                    return SafeArea(
                      child: CarouselSlider.builder(
                        itemCount: novelState.novels.length,
                        itemBuilder: (context, index, realIndex) {
                          final novel = novelState.novels[index];
                          return Column(
                            mainAxisAlignment: MainAxisAlignment.center,
                            children: [
                              imageSlider(novel),
                              novelTitle(novel, context),
                              authorName(novel, context),
                              const SizedBox(
                                height: 5,
                              ),
                              buttomReadNow(context, novel.id),
                            ],
                          );
                        },
                        options: CarouselOptions(
                          height: SizeConfig.size.height * 0.65,
                          autoPlay: true,
                          enlargeCenterPage: true,
                          viewportFraction: 0.8,
                        ),
                      ),
                    );
                  } else if (novelState is NovelError) {
                    return Center(
                      child: Text(novelState.errorMessage),
                    );
                  }
                  return const SizedBox.shrink();
                },
              ),
            ),
            SliverToBoxAdapter(
              child: BlocProvider(
                create: (_) => NovelCubit(
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                )..getGenres(),
                child: BlocBuilder<NovelCubit, NovelState>(
                    builder: (context, genresState) {
                  if (genresState is GenresLoading) {
                    return const SizedBox();
                  } else if (genresState is GenresLoadedSuccessfully) {
                    return Padding(
                      padding: const EdgeInsets.only(top: PaddingManger.p24),
                      child: SizedBox(
                        height: SizeConfig.size.height * 0.069,
                        width: double.infinity,
                        child: GridView.builder(
                          scrollDirection: Axis.horizontal,
                          gridDelegate:
                              SliverGridDelegateWithFixedCrossAxisCount(
                            crossAxisCount: 1,
                            mainAxisExtent: SizeConfig.size.width * 0.25,
                            crossAxisSpacing: 50,
                            childAspectRatio: 1 / 2,
                          ),
                          itemCount: genresState.genres.length,
                          itemBuilder: (context, index) => Container(
                            margin:
                                const EdgeInsets.only(left: MarginManger.m8),
                            height: SizeConfig.size.height * 0.0606,
                            width: SizeConfig.size.width * 0.2778,
                            decoration: BoxDecoration(
                              color: ColorManger.grenresConteinerColor,
                              border: Border.all(),
                              borderRadius:
                                  BorderRadius.circular(BorderRadiusManager.b8),
                            ),
                            child: Center(
                              child: Text(
                                style: getTitleMediumStyle(
                                    color: ColorManger.whiteColor),
                                textAlign: TextAlign.center,
                                genresState.genres[index],
                              ),
                            ),
                          ),
                        ),
                      ),
                    );
                  }
                  return const SizedBox.shrink();
                }),
              ),
            ),
            SliverToBoxAdapter(
              child: BlocProvider(
                create: (_) => NovelCubit(
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                )..getCompletedNovels(1),
                child: BlocBuilder<NovelCubit, NovelState>(
                    builder: (context, completeNovelState) {
                  if (completeNovelState is NovelLoading) {
                    return Container(
                      margin: const EdgeInsets.only(top: MarginManger.m24),
                      decoration: BoxDecoration(
                        color: Colors.black,
                        border: Border.all(color: Colors.white),
                        borderRadius:
                            BorderRadius.circular(BorderRadiusManager.b10),
                      ),
                      height: SizeConfig.size.height * 0.3,
                      width: SizeConfig.size.width * 0.6,
                      child: const Center(
                        child: CircularProgressIndicator(),
                      ),
                    );
                  } else if (completeNovelState is NovelSuccessfullyLoaded) {
                    final containerHeight = SizeConfig.size.height *
                        0.5; // 50% of the screen height
                    final containerWidth =
                        SizeConfig.size.width * 0.95; // 95% of the screen width
                    return Container(
                      margin: const EdgeInsets.only(top: MarginManger.m24),
                      decoration: BoxDecoration(
                        color: Colors.black,
                        border: Border.all(color: Colors.white),
                        borderRadius:
                            BorderRadius.circular(BorderRadiusManager.b10),
                      ),
                      height: containerHeight,
                      width: containerWidth,
                      child: Stack(
                        children: [
                          Column(
                            children: [
                              Row(
                                children: [
                                  Text(
                                    StingsManager.completedNovels,
                                    style: getTitleLargeStyle(
                                        color: ColorManger.whiteColor),
                                  )
                                ],
                              ),
                              GridView.builder(
                                scrollDirection: Axis.vertical,
                                gridDelegate:
                                    const SliverGridDelegateWithFixedCrossAxisCount(
                                  crossAxisCount: 3,
                                  crossAxisSpacing: 8,
                                  mainAxisSpacing: 15,
                                  childAspectRatio: 0.65,
                                ),
                                itemCount: completeNovelState.novels.length,
                                itemBuilder: (context, index) {
                                  return Column(
                                    crossAxisAlignment:
                                        CrossAxisAlignment.center,
                                    children: [
                                      SizedBox(
                                        height: containerHeight * 0.5,
                                        width: containerWidth / 4,
                                        child: Column(
                                          children: [
                                            ClipRRect(
                                              borderRadius:
                                                  BorderRadius.circular(
                                                      BorderRadiusManager.b8),
                                              child: Image.network(
                                                  AppContanse.baseImageUrl +
                                                      completeNovelState
                                                          .novels[index].image),
                                            ),
                                            Text(
                                              completeNovelState
                                                  .novels[index].title,
                                              maxLines: 2,
                                              style: getTitleMediumStyle(
                                                  color:
                                                      ColorManger.whiteColor),
                                              textAlign: TextAlign.center,
                                            )
                                          ],
                                        ),
                                      ),
                                    ],
                                  );
                                },
                              ),
                            ],
                          ),
                        ],
                      ),
                    );
                  } else if (completeNovelState is NovelError) {
                    return Container(
                      margin: const EdgeInsets.only(top: MarginManger.m24),
                      decoration: BoxDecoration(
                        color: Colors.black,
                        border: Border.all(color: Colors.white),
                        borderRadius:
                            BorderRadius.circular(BorderRadiusManager.b10),
                      ),
                      height: SizeConfig.size.height * 0.3,
                      width: SizeConfig.size.width * 0.6,
                      child: Center(
                        child: Text(completeNovelState.errorMessage),
                      ),
                    );
                  }
                  return const SizedBox.shrink();
                }),
              ),
            ),
          ],
        ),
      ),
    );
  }

  Text authorName(Novel novel, BuildContext context) {
    return Text(
      novel.author,
      style: getLabelLargeStyle(
          color: Theme.of(context).brightness == Brightness.light
              ? ColorManger.authorNamedColorlight
              : ColorManger.authorNamedColordark),
    );
  }

  ElevatedButton buttomReadNow(context, id) {
    return ElevatedButton(
        style: buttonStyle(),
        onPressed: () {
          Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) => BlocProvider(
                create: (context) => NovelCubit(
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                  serverLocator(),
                )..getNovelsDetails(id),
                child: const DetailScreen(),
              ),
            ),
          );
        },
        child: Text(
          StingsManager.readNow,
          style: getLabelLargeStyle(
            color: ColorManger.whiteColor,
          ),
        ));
  }

  Flexible novelTitle(Novel novel, BuildContext context) {
    return Flexible(
      child: Text(
        novel.title,
        maxLines: 2,
        textAlign: TextAlign.center,
        style: getTitleLargeStyle(
          color: Theme.of(context).brightness == Brightness.light
              ? ColorManger.blackColor
              : ColorManger.whiteColor,
        ),
      ),
    );
  }

  ClipRRect imageSlider(Novel novel) {
    return ClipRRect(
      borderRadius: BorderRadius.circular(BorderRadiusManager.b16),
      child: Container(
        height: SizeConfig.size.height * 0.40,
        width: SizeConfig.size.width * 0.45,
        decoration: const BoxDecoration(),
        child: image(AppContanse.baseImageUrl + novel.image),
      ),
    );
  }
}

Widget image(String url) {
  return Image.network(
    url,
    fit: BoxFit.fitHeight,
  );
}
, Reloaded 1 of 1245 libraries in 509ms (compile: 22 ms, reload: 175 ms, reassemble: 250 ms).
Reloaded 1 of 1245 libraries in 540ms (compile: 24 ms, reload: 186 ms, reassemble: 260 ms).
Reloaded 1 of 1245 libraries in 508ms (compile: 22 ms, reload: 184 ms, reassemble: 231 ms).
Reloaded 1 of 1245 libraries in 496ms (compile: 21 ms, reload: 182 ms, reassemble: 225 ms).

════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during performResize():
Vertical viewport was given unbounded height.
Viewports expand in the scrolling direction to fill their container. In this case, a vertical viewport was given an unlimited amount of vertical space in which to expand. This situation typically happens when a scrollable widget is nested inside another scrollable widget.
If this widget is always nested in a scrollable widget there is no need to use a viewport because there will always be enough vertical space for the children. In this case, consider using a Column or Wrap instead. Otherwise, consider using a CustomScrollView to concatenate arbitrary slivers into a single scrollable.

The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40

When the exception was thrown, this was the stack:
#0      debugCheckHasBoundedAxis.<anonymous closure> (package:flutter/src/rendering/debug.dart:337:13)
#1      debugCheckHasBoundedAxis (package:flutter/src/rendering/debug.dart:396:4)
#2      RenderViewport.computeDryLayout (package:flutter/src/rendering/viewport.dart:1384:12)
#3      RenderBox.performResize (package:flutter/src/rendering/box.dart:2668:12)
#4      RenderObject.layout (package:flutter/src/rendering/object.dart:2587:9)
#5      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#6      RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#7      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#8      RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#9      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#10     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#11     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#12     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#13     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#14     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#15     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#16     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#17     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#18     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#19     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#20     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1448:11)
#21     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#22     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#23     RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:985:73)
#24     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:1051:32)
#25     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#26     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#27     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)
#28     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)
#29     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#30     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:234:12)
#31     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#32     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#33     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#34     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:291:14)
#35     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#36     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:234:12)
#37     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#38     RenderSliverToBoxAdapter.performLayout (package:flutter/src/rendering/sliver.dart:1900:12)
#39     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#40     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601:13)
#41     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1516:12)
#42     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1427:20)
#43     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#44     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#45     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#46     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#47     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#48     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#49     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#50     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#51     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#52     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#53     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#54     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#55     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#56     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#57     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#58     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#59     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1448:11)
#60     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#61     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:234:12)
#62     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#63     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#64     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#65     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:173:12)
#66     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1092:7)
#67     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:237:7)
#68     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404:14)
#69     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#70     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#71     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#72     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#73     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1448:11)
#74     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#75     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#76     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#77     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#78     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#79     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#80     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)
#81     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)
#82     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#83     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#84     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)
#85     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)
#86     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#87     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#88     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#89     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#90     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#91     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#92     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#93     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#94     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#95     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#96     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#97     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#98     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#99     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#100    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#101    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#102    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#103    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#104    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#105    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#106    RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3728:13)
#107    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#108    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#109    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#110    _RenderTheaterMixin.layoutChild (package:flutter/src/widgets/overlay.dart:1002:13)
#111    _RenderTheater.performLayout (package:flutter/src/widgets/overlay.dart:1311:9)
#112    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#113    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#114    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#115    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#116    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#117    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#118    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#119    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#120    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#121    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#122    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#123    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#124    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#125    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#126    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#127    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#128    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#129    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#130    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#131    RenderView.performLayout (package:flutter/src/rendering/view.dart:281:14)
#132    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2446:7)
#133    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1052:18)
#134    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1065:15)
#135    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:602:23)
#136    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1164:13)
#137    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468:5)
#138    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397:15)
#139    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318:9)
#140    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:1040:9)
#141    PlatformDispatcher.scheduleWarmUpFrame.<anonymous closure> (dart:ui/platform_dispatcher.dart:837:16)
#145    _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
(elided 3 frames from class _Timer and dart:async-patch)

The following RenderObject was being processed when the exception was fired: RenderViewport#39650 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    needs compositing
    parentData: <none> (can use size)
    constraints: BoxConstraints(0.0<=w<=358.0, 0.0<=h<=Infinity)
    size: MISSING
    axisDirection: down
    crossAxisDirection: right
    offset: ScrollPositionWithSingleContext#5c0a5(offset: 0.0, range: null..null, viewport: null, ScrollableState, AlwaysScrollableScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#c310b, ScrollDirection.idle)
    anchor: 0.0
    center child: RenderSliverPadding#567ad NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: paintOffset=Offset(0.0, 0.0)
        constraints: MISSING
        geometry: null
        padding: EdgeInsets(0.0, 24.0, 0.0, 0.0)
        textDirection: ltr
        child: RenderSliverGrid#d8c42 NEEDS-LAYOUT NEEDS-PAINT
            parentData: paintOffset=Offset(0.0, 0.0)
            constraints: MISSING
            geometry: null
            no children current live
RenderObject: RenderViewport#39650 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    needs compositing
    parentData: <none> (can use size)
    constraints: BoxConstraints(0.0<=w<=358.0, 0.0<=h<=Infinity)
    size: MISSING
    axisDirection: down
    crossAxisDirection: right
    offset: ScrollPositionWithSingleContext#5c0a5(offset: 0.0, range: null..null, viewport: null, ScrollableState, AlwaysScrollableScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#c310b, ScrollDirection.idle)
    anchor: 0.0
    center child: RenderSliverPadding#567ad NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: paintOffset=Offset(0.0, 0.0)
        constraints: MISSING
        geometry: null
        padding: EdgeInsets(0.0, 24.0, 0.0, 0.0)
        textDirection: ltr
        child: RenderSliverGrid#d8c42 NEEDS-LAYOUT NEEDS-PAINT
            parentData: paintOffset=Offset(0.0, 0.0)
            constraints: MISSING
            geometry: null
            no children current live
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderViewport#39650 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderViewport#39650 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderIgnorePointer#b43b9 relayoutBoundary=up9 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderSemanticsAnnotations#61afc relayoutBoundary=up8 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderPointerListener#6b404 relayoutBoundary=up7 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderSemanticsGestureHandler#ae397 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderPointerListener#6fb95 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: _RenderScrollSemantics#7a472 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderClipRect#96b38 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    Column Column:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:220:27
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderFlex#cf64e relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    Stack Stack:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:218:30
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════
Reloaded 1 of 1245 libraries in 739ms (compile: 37 ms, reload: 186 ms, reassemble: 448 ms).

════════ Exception caught by gestures library ══════════════════════════════════
Cannot hit test a render box with no size.
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gestures library ══════════════════════════════════
Cannot hit test a render box with no size.
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
The following assertion was thrown during performResize():
Vertical viewport was given unbounded height.
Viewports expand in the scrolling direction to fill their container. In this case, a vertical viewport was given an unlimited amount of vertical space in which to expand. This situation typically happens when a scrollable widget is nested inside another scrollable widget.
If this widget is always nested in a scrollable widget there is no need to use a viewport because there will always be enough vertical space for the children. In this case, consider using a Column or Wrap instead. Otherwise, consider using a CustomScrollView to concatenate arbitrary slivers into a single scrollable.

The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40

When the exception was thrown, this was the stack:
#0      debugCheckHasBoundedAxis.<anonymous closure> (package:flutter/src/rendering/debug.dart:337:13)
#1      debugCheckHasBoundedAxis (package:flutter/src/rendering/debug.dart:396:4)
#2      RenderViewport.computeDryLayout (package:flutter/src/rendering/viewport.dart:1384:12)
#3      RenderBox.performResize (package:flutter/src/rendering/box.dart:2668:12)
#4      RenderObject.layout (package:flutter/src/rendering/object.dart:2587:9)
#5      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#6      RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#7      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#8      RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#9      RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#10     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#11     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#12     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#13     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#14     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#15     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#16     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#17     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#18     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#19     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#20     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1448:11)
#21     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#22     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#23     RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:985:73)
#24     RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:1051:32)
#25     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#26     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#27     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)
#28     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)
#29     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#30     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:234:12)
#31     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#32     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#33     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#34     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:291:14)
#35     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#36     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:234:12)
#37     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#38     RenderSliverToBoxAdapter.performLayout (package:flutter/src/rendering/sliver.dart:1900:12)
#39     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#40     RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601:13)
#41     RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1516:12)
#42     RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1427:20)
#43     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#44     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#45     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#46     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#47     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#48     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#49     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#50     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#51     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#52     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#53     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#54     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#55     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#56     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#57     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#58     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#59     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1448:11)
#60     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#61     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:234:12)
#62     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#63     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#64     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#65     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:173:12)
#66     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1092:7)
#67     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:237:7)
#68     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:404:14)
#69     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#70     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#71     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#72     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#73     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1448:11)
#74     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#75     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#76     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#77     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#78     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#79     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#80     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)
#81     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)
#82     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#83     ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:61:11)
#84     RenderStack._computeSize (package:flutter/src/rendering/stack.dart:595:43)
#85     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:622:12)
#86     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#87     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#88     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#89     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#90     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#91     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#92     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#93     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#94     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#95     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#96     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#97     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#98     RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#99     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#100    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#101    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#102    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#103    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#104    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#105    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#106    RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3728:13)
#107    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#108    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#109    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#110    _RenderTheaterMixin.layoutChild (package:flutter/src/widgets/overlay.dart:1002:13)
#111    _RenderTheater.performLayout (package:flutter/src/widgets/overlay.dart:1311:9)
#112    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#113    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#114    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#115    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#116    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#117    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#118    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#119    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#120    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#121    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#122    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#123    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#124    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#125    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#126    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#127    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#128    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#129    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:21)
#130    RenderObject.layout (package:flutter/src/rendering/object.dart:2608:7)
#131    RenderView.performLayout (package:flutter/src/rendering/view.dart:281:14)
#132    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2446:7)
#133    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1052:18)
#134    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1065:15)
#135    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:602:23)
#136    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1164:13)
#137    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:468:5)
#138    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1397:15)
#139    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1318:9)
#140    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:1040:9)
#141    PlatformDispatcher.scheduleWarmUpFrame.<anonymous closure> (dart:ui/platform_dispatcher.dart:837:16)
#145    _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)
(elided 3 frames from class _Timer and dart:async-patch)

The following RenderObject was being processed when the exception was fired: RenderViewport#39650 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    needs compositing
    parentData: <none> (can use size)
    constraints: BoxConstraints(0.0<=w<=358.0, 0.0<=h<=Infinity)
    size: MISSING
    axisDirection: down
    crossAxisDirection: right
    offset: ScrollPositionWithSingleContext#5c0a5(offset: 0.0, range: null..null, viewport: null, ScrollableState, AlwaysScrollableScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#c310b, ScrollDirection.idle)
    anchor: 0.0
    center child: RenderSliverPadding#567ad NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: paintOffset=Offset(0.0, 0.0)
        constraints: MISSING
        geometry: null
        padding: EdgeInsets(0.0, 24.0, 0.0, 0.0)
        textDirection: ltr
        child: RenderSliverGrid#d8c42 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: paintOffset=Offset(0.0, 0.0)
            constraints: MISSING
            geometry: null
            no children current live
RenderObject: RenderViewport#39650 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    needs compositing
    parentData: <none> (can use size)
    constraints: BoxConstraints(0.0<=w<=358.0, 0.0<=h<=Infinity)
    size: MISSING
    axisDirection: down
    crossAxisDirection: right
    offset: ScrollPositionWithSingleContext#5c0a5(offset: 0.0, range: null..null, viewport: null, ScrollableState, AlwaysScrollableScrollPhysics -> ClampingScrollPhysics -> RangeMaintainingScrollPhysics, IdleScrollActivity#c310b, ScrollDirection.idle)
    anchor: 0.0
    center child: RenderSliverPadding#567ad NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: paintOffset=Offset(0.0, 0.0)
        constraints: MISSING
        geometry: null
        padding: EdgeInsets(0.0, 24.0, 0.0, 0.0)
        textDirection: ltr
        child: RenderSliverGrid#d8c42 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: paintOffset=Offset(0.0, 0.0)
            constraints: MISSING
            geometry: null
            no children current live
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderViewport#39650 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderViewport#39650 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderIgnorePointer#b43b9 relayoutBoundary=up9 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderSemanticsAnnotations#61afc relayoutBoundary=up8 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderPointerListener#6b404 relayoutBoundary=up7 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderSemanticsGestureHandler#ae397 relayoutBoundary=up6 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderPointerListener#6fb95 relayoutBoundary=up5 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: _RenderScrollSemantics#7a472 relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderClipRect#96b38 relayoutBoundary=up2 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    Column Column:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:220:27
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderFlex#cf64e relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    Stack Stack:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:218:30
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════
Reloaded 1 of 1245 libraries in 656ms (compile: 21 ms, reload: 181 ms, reassemble: 386 ms).

════════ Exception caught by gestures library ══════════════════════════════════
Cannot hit test a render box with no size.
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gestures library ══════════════════════════════════
Cannot hit test a render box with no size.
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gestures library ══════════════════════════════════
Cannot hit test a render box with no size.
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by gestures library ══════════════════════════════════
Cannot hit test a render box with no size.
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════

════════ Exception caught by rendering library ═════════════════════════════════
RenderBox was not laid out: RenderTransform#02407 relayoutBoundary=up3
'package:flutter/src/rendering/box.dart':
Failed assertion: line 2164 pos 12: 'hasSize'
The relevant error-causing widget was:
    GridView GridView:file:///C:/Users/DELL/clean%20Articucture/learning/lib/Presentation/Screens/home_screen.dart:231:40
════════════════════════════════════════════════════════════════════════════════