Попробуйте создать вложенный Listview в flutter

#flutter #listview #flutter-layout #flutter-web #flutter-test

#flutter #listview #flutter-layout #flutter-web #flutter-тест

Вопрос:

я попытался создать вложенный ListView, родительский список прокручивается в вертикальном направлении, а дочерний список прокручивается по горизонтали, но выдается эта ошибка :

[ОШИБКА: flutter /lib /ui/ui_dart_state.cc(177)] Необработанное исключение: ‘package:flutter /src / rendering/mouse_tracking.dart’: Ошибка утверждения: строка 301 поз 12: ‘!_debugDuringDeviceUpdate’: неверно.

я также пытался использовать столбец с одним ListView и другими виджетами по вертикали, и выдается та же ошибка

Ответ №1:

Я мог бы решить эту проблему с помощью виджета CustomScrollView и его делегата SliverChildListDelegate(), это часть моего кодового решения

 CustomScrollView(
      slivers: [
        SliverList(
          delegate: SliverChildListDelegate([
            Center(
              child: Column(
                children: [
                  Stack(
                    children: [
                      SingleChildScrollView(
                        scrollDirection: Axis.horizontal,
                        child: Row(
                          children: [
                            // height: MediaQuery.of(context).size.width,
                            Column(
                              children: [
                                InkWell(
                                  onTap: () {},
                                  onHover: (value) {
                                    if (value) {
                                      setState(() {
                                        assetImage =
                                            "assets/DentalChart/1.png";
                                        showHoverImage = true;
                                        hoverText = "Frontal Tooth";
                                        hoverWidth = 100;
                                        hoverHeight = 130;
                                        hoverOffset = Offset(100, 50);
                                      });
                                    } else {
                                      setState(() {
                                        showHoverImage = false;
                                      });
                                    }
                                  },
                                  child: Container(
                                    child: Image.asset(
                                      "assets/Images/1.png",
                                      height: 80,
                                      width: 60,
                                    ),
                                  ),
                                ),
                                SizedBox(
                                  height: 10,
                                ),
                                InkWell(
                                  onTap: () {},
                                  onHover: (value) {
                                    if (value) {
                                      setState(() {
                                        assetImage =
                                            "assets/images/1base.png";
                                        showHoverImage = true;
                                        hoverText = "Tooth Base";
                                        hoverWidth = 80;
                                        hoverHeight = 80;
                                        hoverOffset = Offset(100, 50);
                                      });
                                    } else {
                                      setState(() {
                                        showHoverImage = false;
                                      });
                                    }
                                  },
                                  child: Container(
                                    child: Image.asset(
                                      "assets/images/1base.png",
                                      height: 40,
                                      width: 60,
                                    ),
                                  ),
                                ),
                                SizedBox(
                                  height: 10,
                                ),
                            
                                ),
                              ],
                            ),

                    ],
                  ),
                  Padding(
                    padding: const EdgeInsets.only(top: 41.0),
                    child: Text("dsjnkjdvsnkldvsnlkdsn"),
                  )
                ],
              ),
            ),
          ]),
        )
      ],
    ),