flutter - Flutter 功能发现——BottomNavigationBarItems 的 DescribedFeatureOverlay
问题描述
我在 ^0.12.1 版本中使用包 feature_discovery。为了显示功能发现覆盖,我需要用 DescribedFeatureOverlay 包装 BottomNavigationBarItem。然而,BottomNavigationBar 的项目需要一个 BottomNavigationBarItem 类型的列表:
Scaffold(
[...]
bottomNavigationBar: BottomAppBar(
[...]
child: BottomNavigationBar(
[...]
items: [
DescribedFeatureOverlay( // This does not work because items requires type BottomNavigationBarItem
[...]
child: BottomNavigationBarItem(
icon: Icon(item.icon),
label: item.title,
),
),
],
),
),
);
有效的代码是这样的:
Scaffold(
[...]
bottomNavigationBar: BottomAppBar(
[...]
child: BottomNavigationBar(
[...]
items: [
BottomNavigationBarItem( // need to wrap this with DescribedFeatureOverlay
icon: Icon(item.icon),
label: item.title,
),
],
),
),
);
我一直在努力寻找解决这个问题的方法。如何用 DescribedFeatureOverlay 包装 BottomNavigationBarItem?这是 Flutter 的限制还是有办法做到这一点?
我是否需要复制、扩展和修改 BottomNavigationBar 类并使用该类来实现这一点?
解决方案
作为解决方法,您可以包装BottomNavigationBarItem
类似的图标小部件
BottomNavigationBarItem(
icon: DescribedFeatureOverlay(
featureId: item.featureId,
title: Text(item.title),
description: Text(item.description),
backgroundColor: item.color,
tapTarget: Icon(item.icon),
child: Icon(item.icon),
),
label: item.title,
);
推荐阅读
- single-page-application - SPA 产品购物车
- jenkins - 从 Jenkinsfile 中的 jenkins 作业配置中读取 SVN URL
- node.js - 猫鼬和本地化
- android - 更改片段时Android livedata失去活跃的观察者
- javascript - Mac OS X - NPM + Jasmine 未安装。每次终端关闭时都必须重新安装
- julia - Julia 点矢量化 - 我需要矢量化到调用链的深度吗?
- javascript - 使用 javascript 设置属性
- mongodb - 使用 MongoDB 的第一周保留
- python - try except 块中的 Python break 语句
- java - rmi 服务器监听 2 个不同的 ip