尝试在颤振中创建嵌套列表视图

Posted

技术标签:

【中文标题】尝试在颤振中创建嵌套列表视图【英文标题】:Try to create Nested Listview in flutter 【发布时间】:2021-02-06 10:55:41 【问题描述】:

我尝试制作嵌套 ListView ,父列表视图垂直滚动,子列表水平滚动但抛出此错误:

[错误:flutter/lib/ui/ui_dart_state.cc(177)] 未处理的异常: 'package:flutter/src/rendering/mouse_tracking.dart':断言失败: 第 301 行 pos 12: '!_debugDuringDeviceUpdate': 不正确。

我还尝试将 column 与一个 ListView 和其他小部件垂直使用,并引发相同的错误

【问题讨论】:

【参考方案1】:

我可以通过使用 CustomScrollView Widget 及其委托 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"),
                  )
                ],
              ),
            ),
          ]),
        )
      ],
    ),

【讨论】:

以上是关于尝试在颤振中创建嵌套列表视图的主要内容,如果未能解决你的问题,请参考以下文章

带有分隔符的颤振组列表视图

从视图表中获取数据时出现 Laravel 错误

有啥方法可以避免 SwiftUI GeometryReader 阻止嵌套视图在列表中增长?

laravel5.2如何创建视图表

在颤振中使用列表视图搜索数据时出错

如何从 postgresql 视图表中获取要显示的对象列表