| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Flutter 那些花里胡哨的底部菜单 进来绝不后悔 -> 正文阅读 |
|
[移动开发]Flutter 那些花里胡哨的底部菜单 进来绝不后悔 |
前言前段时间,学习到了Flutter动画,正愁不知道写个项目练习巩固,突然有一天产品在群里发了一个链接【ios中的动画标签】(下面有例图),我心里直呼"好家伙",要是产品都要求做成这样,产品经理和程序员又又又又又又得打起来! 还好只是让我们参考,刚好可以拿来练习。 GitHub地址:https://github.com/longer96/flutter-demo 我们每天都会看到底部导航菜单,它们在应用程序内引导用户,允许他们在不同的tag之间快速切换。但是谁说切换标签就应该很无聊? 如果恰好能给你带来一点点帮助,那是再好不过啦~ 路过的帅逼帮忙点个 star 先上几张花里胡哨的底部菜单 参考图
效果分析咳咳,有的动效确实挺难的,需要设计师的鼎力支持,我只好选软的柿子捏 首先我们观察,它是由文字和指示器组成的。点击之后指示器切换,文字缩放。
稍微复杂一点的是指示器的动画,看上去有3个变量:左边距、右边距、指示器宽度。 实现效果 其实很多类似底部菜单都可以如法炮制,指示器位于tag后面,根据不同的条件调整位置和尺寸。 实现一款底部菜单常见的还有另一种展开类似的菜单,比如这样 咱们还是先简单分析一下
看上去只有2步,还是很简单的嘛 第一步:我们用帧布局叠放按钮和tag
第二步:管理好tag的位置
使用起来也很简单,只需要实现FlowDelegate的paintChildren()方法,就可以自定义布局策略。所以我们需要计算好每一个tag的轨迹位置。 经过你的细心观察,你发现tag的轨迹呈半圆状展开,对 没错 就是需要翻出三角函数 经过你的又一次细心观察,你发现有5个tag,半圆实际可以放7个,但是为了有更好的显示效果,可以将需要展示的tag放在中间位置(过滤掉第一个和最后一个) 所以我们可以列出简单的计算
你发现太规整的圆其实并不是那么好看,优化一下
微调一下,好啦 恭喜你!
只要理解到了上面的实现,下面这3种也能很轻松完成
最后收集、参考实现了几个底部导航,当然可能很多地方需要优化,大家不要喷我哦
|
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/5 22:41:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |