Aze*_*mil 9 dart flutter flutter-bottomnavigation
在我的应用程序中,我有一个搜索页面,当我单击搜索文本字段时,底部导航栏也会随键盘一起向上移动,它应该隐藏在键盘下方。因为当键盘显示时我可以导航到其他页面,这是不良行为。
代码:
class _AppHomeViewState extends State<AppHomeView>
with TickerProviderStateMixin {
TabController tabController;
@override
void initState() {
super.initState();
tabController = TabController(length: 4, vsync: this, initialIndex: 0);
tabController.addListener(handleTabSelection);
}
@override
Widget build(BuildContext context) {
final scaffold = Scaffold(
body: SafeArea(child: _buildBody(context)),
bottomNavigationBar: Container(
height: 48,
decoration: BoxDecoration(
color: StyledColors.BACKGROUND_COLOR,
boxShadow: [
BoxShadow(
color: StyledColors.FORGROUND_COLOR.withOpacity(0.16),
blurRadius: 12,
offset: Offset(0, 0),
),
],
),
child: SafeArea(
child: _buildTabBar(context),
),
),
);
}
Widget _buildBody(BuildContext context) {
return TabBarView(
physics: NeverScrollableScrollPhysics(),
controller: tabController,
children: <Widget>[
HomeView(),
SearchView(),
OrdersView(),
ProfileView(),
],
);
}
Widget _buildTabBar(BuildContext context) {
return TabBar(
controller: tabController,
tabs: <Widget>[
Tab(
icon: Icon(
Icons.store,
size: 28,
),
),
Tab(
icon: Icon(
Icons.search,
size: 28,
),
),
Tab(
icon: Icon(
Icons.receipt,
size: 28,
),
),
Tab(
icon: Icon(
Icons.person,
size: 28,
),
)
],
indicatorColor: Colors.transparent,
unselectedLabelColor: StyledColors.MEDIUM_GREY,
labelColor: StyledColors.PRIMARY_COLOR,
);
}
void handleTabSelection() {
setState(() {});
}
}
Run Code Online (Sandbox Code Playgroud)
应该的行为是,当我单击搜索时,底部导航栏应该留在键盘后面而不是出现键盘?
Nit*_*esh 10
resizeToAvoidBottomInset: false,在 Scaffold 小部件中设置
小智 5
我刚刚遇到了同样的问题,当启用键盘时,我的底部导航栏随键盘一起向上移动。我通过检查键盘是否打开来解决这个问题。如果它是打开的,只需隐藏禁用底部导航栏,当它关闭时,就可以启用导航栏了.. 这是它的样子.. 首先创建一个布尔变量来检查键盘是否打开..
bool isKeyboardOpen = MediaQuery.of(context).viewInsets.bottom != 0.0;
Run Code Online (Sandbox Code Playgroud)
现在做这样的事情来切换你的底部导航栏
bottomNavigationBar: isKeyboardOpen
? null
: BottomAppBar();
Run Code Online (Sandbox Code Playgroud)
该技术也适用于浮动动作底部问题。
| 归档时间: |
|
| 查看次数: |
14431 次 |
| 最近记录: |