我是 Flutter 新手,我正在尝试创建一个导航栏,其两侧有两个图标。我正在使用 Windows Android Studio 和那里的 android 模拟器。
但是,目前仅显示尾随图标,而不显示前导图标。我不确定为什么会发生这种情况(是因为我使用的是 Android 模拟器吗?)。希望在这里得到一些帮助。谢谢!
编辑:当栏折叠时,前导图标也不会显示,即使它与尾随图标共享相同的代码。我尝试过谷歌搜索,但似乎这不是一个常见问题?
这是我的代码片段:
home.dart
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
child: NestedScrollView(
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
Heading(
headingTitle: 'Ambisense',
leadingIcon: Icon(CupertinoIcons.bars),
trailingIcon: Icon(CupertinoIcons.gear_alt_fill),
)
];
},
body: Center(
child: Text('Home Page'),
)
),
);
}
标题.dart
class Heading extends StatelessWidget with ObstructingPreferredSizeWidget {
final String headingTitle;
final Icon leadingIcon;
final Icon trailingIcon;
Heading({
@required this.headingTitle,
@required this.leadingIcon,
@required this.trailingIcon
});
@override
Widget build(BuildContext context) {
return CupertinoSliverNavigationBar(
largeTitle: Text(headingTitle),
leading: this.leadingIcon,
trailing: this.trailingIcon,
);
}
@override
// TODO: implement preferredSize
Size get preferredSize => throw UnimplementedError();
@override
bool shouldFullyObstruct(BuildContext context) {
// TODO: implement shouldFullyObstruct
throw UnimplementedError();
}
}
我怀疑问题出在使用 android 模拟器,因为 Cupertino 被设计为在 ios 上运行。我尝试过使用其他一些 CupertinoIcons,有些出现,有些不出现。但是,解决该问题的方法是使用 Material 类中的 Icon 集合 而不是 CupertinoIcons。
我正在寻找菜单图标,因此使用了
IconData(0xf2fb, fontFamily: 'MaterialIcons')
。
我通过删除
pubspec.lock
文件解决了我的问题,不知何故它没有注册 cupertinoicons 插件,
我回家就能解决这个问题,
确保也运行
flutter clean
跑步前
flutter pub get