悬停时显示/隐藏下拉菜单 Flutter for web

Posted

技术标签:

【中文标题】悬停时显示/隐藏下拉菜单 Flutter for web【英文标题】:Show/Hide Drop down menu on hover Flutter for web 【发布时间】:2021-09-19 02:08:37 【问题描述】:

我正在尝试在此站点上实现下拉菜单https://www.mapbox.com/mapbox-gljs

屏幕截图:我想要什么?

到目前为止,我使用PopupMenuButton 来显示下拉菜单。但我无法弄清楚:

如何更改PopupMenuButton 下拉列表的布局 如何在鼠标悬停时显示/隐藏。我尝试过使用onHoverInkWellMouseRegion,但是一旦鼠标不在按钮上方,它就不会隐藏菜单。

截图:我站在哪里

代码

IDK why this code was not being copied in format way :(

                                  return PopupMenuButton(
                                    offset: Offset(0, 60),
                                    elevation: 4.0,
                                    child: Container(
                                      decoration: BoxDecoration(
                                        border:
                                            tabBarProviders.currentIndex == i
                                                ? Border(
                                                    bottom: BorderSide(
                                                      width: 3.0,
                                                      color: kRedPrimaryColor,
                                                    ),
                                                  )
                                                : Border(),
                                      ),
                                      padding: const EdgeInsets.all(8.0),
                                      child: Row(
                                        children: [
                                          Text(
                                            _actionBtns[i],
                                            style: TextStyle(
                                                fontWeight: FontWeight.bold),
                                          ),
                                          Icon(Icons.arrow_drop_down),
                                        ],
                                      ),
                                    ),
                                    onSelected: (value) 
                                      if (value == "WATERPROOFING") 
                                        tabBarProviders.currentIndex = 3;
                                      
                                    ,
                                    itemBuilder: (context) =>
                                        _waterProofingDropDown
                                            .map((e) => PopupMenuItem(
                                                value: e, child: Text(e)))
                                            .toList(),
                                  );

【问题讨论】:

【参考方案1】:

我建议您使用flutter portal package,它将在您的用例中帮助您很多

【讨论】:

我看了看,问题不是在悬停上显示它我面临的问题是,一旦鼠标不再悬停按钮,我将如何隐藏菜单 要检测鼠标,有一个小部件MouseRegionapi.flutter.dev/flutter/widgets/MouseRegion-class.html 正如问题中提到的,我已经使用过它。我知道它的 onHover 。但是如何隐藏菜单

以上是关于悬停时显示/隐藏下拉菜单 Flutter for web的主要内容,如果未能解决你的问题,请参考以下文章

在悬停时显示 div(固定位置和溢出隐藏父级)

在引导下拉菜单中悬停时显示活动的父菜单项

如何通过悬停而不单击[重复]来显示下拉菜单和子菜单项

使用 jQuery 在悬停时显示隐藏类

jQuery 菜单下拉气泡

使用jQuery在悬停时显示隐藏类