如何解决当作为单独文件中的子小部件处理时,Flutter BottomNavigationBar 不可点击
我正在开发这个 Flutter 应用程序,并试图分离一些代码以使事情变得整洁。所以我有一个主页,其中包含一个带有标签栏的应用栏(完美运行)、标签视图主体(运行良好)和底部导航栏(不起作用:不知何故不可点击)。
我的footBar.dart:
import 'package:Flutter/material.dart';
class FootBar extends StatefulWidget {
@override
_FootBarState createState() => _FootBarState();
}
class _FootBarState extends State<FootBar> {
int _currentIndex = 0;
Widget build(BuildContext context) {
return Container(
child: BottomNavigationBar(
type: BottomNavigationBarType.fixed,currentIndex: _currentIndex,backgroundColor: Colors.white,selectedItemColor: Colors.black,unselectedItemColor: Colors.black.withOpacity(.3),selectedFontSize: 14,unselectedFontSize: 14,showSelectedLabels: false,showUnselectedLabels: false,onTap: (value) {
// Respond to item press.
setState(() => _currentIndex = value);
},items: [
BottomNavigationBarItem(
label: '',icon: Text('a'),),BottomNavigationBarItem(
label: '',icon: Text('b'),icon: Text('c'),icon: Text('d'),],);
}
}
然后我像这样在 homepage.dart 中导入它:
import 'package:Flutter/material.dart';
import 'appbar/appBar.dart';
import 'footbar/footBar.dart';
void main() => runApp(HomePage());
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 2,child: Scaffold(
appBar: TopAppBar(),body: TabBarView(
children: [
Center(child: Text('DOGS')),Center(child: Text('CATS')),bottomNavigationBar: FootBar(),);
}
}
感谢任何帮助。在此先感谢各位!
解决方法
好吧,我刚刚发现出了什么问题。所以在我的 footBar.dart 文件中,我不应该有这个:
showSelectedLabels: false,showUnselectedLabels: false,
我注释了这两行,然后将文本放入label
,并使用0.0高度的容器隐藏图标(icons: Container(height: 0.0,),
),终于得到了我想要的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。