You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter中实现可拖拽/可展开的底部导航栏?

实现默认显示5个图标、点击汉堡按钮展开额外3个的导航栏

下面是实现这种可展开导航栏的代码方案,分HTML、CSS、JS三部分:

HTML 结构

用容器包裹所有导航元素,默认显示的图标直接放置,额外图标统一放在子容器中,最后添加汉堡按钮:

<nav class="expandable-nav">
  <!-- 默认显示的5个图标 -->
  <div class="nav-icon">🏠</div>
  <div class="nav-icon">📧</div>
  <div class="nav-icon">🔍</div>
  <div class="nav-icon">⭐</div>
  <div class="nav-icon">⚙️</div>
  
  <!-- 点击后展开的3个图标 -->
  <div class="hidden-icons">
    <div class="nav-icon">📁</div>
    <div class="nav-icon">👤</div>
    <div class="nav-icon">🚪</div>
  </div>
  
  <!-- 汉堡按钮 -->
  <button class="hamburger-btn">☰</button>
</nav>

CSS 样式

设置导航栏横向布局,默认隐藏额外图标,通过添加active类触发展开效果:

.expandable-nav {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.5rem 1rem;
  background-color: #f5f5f5;
  border-radius: 8px;
}

.nav-icon {
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0.3rem;
  border-radius: 4px;
  transition: background-color 0.2s;
}

.nav-icon:hover {
  background-color: #e0e0e0;
}

/* 默认隐藏额外图标 */
.hidden-icons {
  display: none;
  gap: 1rem;
}

/* 展开状态下显示额外图标 */
.expandable-nav.active .hidden-icons {
  display: flex;
}

.hamburger-btn {
  margin-left: auto;
  border: none;
  background: transparent;
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0.3rem;
  border-radius: 4px;
  transition: background-color 0.2s;
}

.hamburger-btn:hover {
  background-color: #e0e0e0;
}

JavaScript 交互逻辑

监听汉堡按钮点击事件,切换导航栏的active类,实现展开/收起的切换:

const hamburgerBtn = document.querySelector('.hamburger-btn');
const expandableNav = document.querySelector('.expandable-nav');

hamburgerBtn.addEventListener('click', () => {
  expandableNav.classList.toggle('active');
  // 可选:切换汉堡按钮图标为叉号,增强交互反馈
  hamburgerBtn.textContent = expandableNav.classList.contains('active') ? '✕' : '☰';
});

效果说明

  • 默认状态:导航栏仅显示5个核心图标和汉堡按钮
  • 点击汉堡:额外3个图标横向展开,汉堡按钮变为叉号
  • 再次点击:额外图标隐藏,按钮恢复为汉堡样式

你可以把示例里的emoji图标换成项目实际用的图标(比如Font Awesome类),只需要替换<div class="nav-icon">内的内容即可。

内容的提问来源于stack exchange,提问作者MICHEL Baptiste

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 20:43:22