首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自定义View:手撸一个带FAB凹槽的底部导航栏

链接:https://juejin.cn/post/7337354931480199208 本文由作者授权发布 前言 底部导航栏相信大部分的Androider都不陌生,毕竟对于绝大多数的应用来说底部导航栏是首页的标配...,也不缺各种花里胡哨不按常理出牌的底部导航栏。...设计思路 既然玩那就干脆玩花一点,一步到位给中间按钮加了个简单的点击动画,点击后FAB在垂直方向上执行一次往返位移,同时底部导航栏上的凹槽大小跟随着FAB的凹陷深度动态变化,需要实现的功能点以及思路大体是下面的几个...的特性,设置底部导航栏作为FAB的参照物方便对齐停靠; FAB位移动画以及导航栏凹陷动态变化:自定义导航栏的形状,根据FAB的凹陷深度来动态绘制导航栏。...的值,由此一来可以达到凹槽收缩的效果,按钮向下运动时同理: 另外还需要考虑按钮完全位于导航栏上方时的情况,这种情况下直接使用直线来代替原来的曲线部分。

26510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Material Design —Snackbars &Toasts

    Snackbars & Toasts Snackbars是通过屏幕底部的消息对操作进行的简短反馈。 Snackbar包含与所执行的操作直接相关的单行文本。 它们可能包含操作文本,但不包含icon。...它们也显示在屏幕的底部,但不能从屏幕中滑走。 用法 一次只能显示一个snackbar。 每个snackbar可能包含一个单独的操作,但不会是“关闭”或“取消”。...行为 Snackbars激活后从屏幕的底部向上滑出。 ---- 用法 一次只能在屏幕上显示一个Snackbar。 位置 Snackbars出现在屏幕上的大多数元素的上方,与浮动操作按钮的高程相同。...但高程低于提示框,底部动作条和导航抽屉。 行为 入口时,Snackbars激活时从屏幕底部向上出现。 出现时不会阻碍用户输入。...当显示第一个Snackbar时第二个就该做准备,在第二个Snackbar开始出现前第一个Snackbar应该开始向下收缩。 (今天的好短~开心~)

    1.1K60

    Material Design — App bars: bottomApp bars: bottom

    App bars: bottom Material Design链接:App Bars:bottom Bottom app bar 在手机屏幕底部展示导航和关键操作。...向上滚动显示 bottom app bar,如果有FAB,则重新附着 FAB。 Bottom app bar 可以改变其边缘的形状,例如凹口以容纳FAB。...当与 FAB 配合时,FAB 的静止和凸起高度应该增加,以便在 bottom app bar 上方保持可见。 ?...底部的导航抽屉从底部的应用栏打开。 抽屉在底部应用程序栏前打开,并显示顶部应用程序栏以在达到完整高度时关闭抽屉。...---- 位置 导航 Bottom app bar 可显示 navigation menu icon 以打开 bottom navigation drawer,但该 bar 本身不包含任何导航操作(例如向上导航至主屏幕或一个关闭图标

    2.4K80

    Snackbar-Android M新控件

    使用 Snackbar,可以在屏幕底部快速的显示一条消息,大体与 Toast 相同,但多了几分灵活性: 一小段时间之后、或者用户与屏幕触发交互,Snackbar 会自动消失; 可以包含一个可选的操作;...把 Snackbar 划出屏幕,可以弃用; 作为一条上下文敏感的消息,也是 UI 的一部分,并在屏幕内所有元素的上层显示,而不是像 Toast 消息一样位于屏幕中央; 一个时刻只能有唯一一个 Snackbar...> 点击 FAB 以查看结果: ?...可以正常运行,但是并不符合标准的 UX,应该按照下图所示,FAB 适当上移: ?...同时按照文档中描述: 在项目的 view 中添加 CoordinatorLayout,可以支持 snackbar 的更多特性,比如滑动消失,和 FAB 的自动移动。

    77730

    浅谈SnackBar(Toast大兄弟)

    SnackBar是 Android Support Library 22.2.1 里面新增提供的一个控件,我们可以简单的把它理解成一个加强版的Toast,或者是一个轻量级的Dialog。...特点: 1.SnackBar和Toast的用途一样,都是用来提示用户操作后的结果的。 2.SnackBar显示时位置一般是在屏幕底部,较大的设备就显示在左下角。...3.SnackBar同一时间只有一条 4.SnackBar可以自动消失,也可以手动取消(在完成某个操作的时候) 5.在Activity结束的时候,SnackBar会消失,这点Toast不会 (避免...另外SnackBar的显示时长的设置值可以为: Snackbar.LENGTH_SHORT// 短时间显示,然后自动取消 Snackbar.LENGTH_LONG// 长时间显示,然后自动取消 Snackbar.LENGTH_INDEFINITE...="match_parent"> <android.support.design.widget.FloatingActionButton android:id="@+id/fab

    72140

    浅谈SnackBar(Toast大兄弟)

    SnackBar是 Android Support Library 22.2.1 里面新增提供的一个控件,我们可以简单的把它理解成一个加强版的Toast,或者是一个轻量级的Dialog。...特点: 1.SnackBar和Toast的用途一样,都是用来提示用户操作后的结果的。 2.SnackBar显示时位置一般是在屏幕底部,较大的设备就显示在左下角。...3.SnackBar同一时间只有一条 4.SnackBar可以自动消失,也可以手动取消(在完成某个操作的时候) 5.在Activity结束的时候,SnackBar会消失,这点Toast不会 (避免...另外SnackBar的显示时长的设置值可以为: Snackbar.LENGTH_SHORT// 短时间显示,然后自动取消 Snackbar.LENGTH_LONG// 长时间显示,然后自动取消 Snackbar.LENGTH_INDEFINITE...="match_parent"> <android.support.design.widget.FloatingActionButton android:id="@+id/fab

    78140

    处理视觉冲突 | 手势导航 (二)

    自 API 1 以来,它们就以各种形式存在着,并且每当系统 UI 重叠显示在您的应用上方时,这个方法就会被调用。常见的例子是下拉状态栏和导航栏,或者弹出屏幕软键盘 (IME)。...在系统使用手势导航模式时 (即导航栏变成屏幕底部的一条粗线,也就是导航条),由于导航条有动态色彩调整功能,这个冲突可能不会那么明显。...具体到本例中,FAB 位于底部右侧边缘附近,因此我们可以使用 systemWindowInsets.bottom 和 systemWindowInsets.right 值来增加 FAB 下方和右方的边距...这里让我们仍然使用 FAB 来举例: 注意看上图,在导航栏模式下,FAB 不会进入导航栏占据的高度 (48dp)。...从屏幕底部开始向上滑动,可以让用户切换最近使用的应用 (Recent)。 在系统手势区域中,系统手势操作优先于应用自己的手势操作。您可能已经注意到系统手势区域有两个获取方法。

    2.8K30

    Flutter 入门指北之弹窗和提示(干货)

    Flutter 中的操作提示主要有这么几种 SnackBar、BottomSheet、Dialog,因为 Dialog 样式比较多,放最后讲好了 SnackBar SnackBar 的源码相对简单 const...还有就是 SnackBar 可以和 floatingActionButton 完美的配合,弹出的时候不会遮挡住 fab class _PromptDemoPageState extends State<...BottomSheet BottomSheet 看命名就知道是从底部弹出的菜单,展示 BottomSheet 有两种方式,分别是 showBottomSheet 和 showModalBottomSheet...,两种方式只有在展示类型上的差别,方法调用无差,而且 showBottomSheet 和 fab 有组合动画,showModalBottomSheet 则没有,看下实际的例子吧。...可以看到 showBottomSheet 会充满整个屏幕,然后 fab 会跟随一起到 AppBar 的底部位置,而 showModalBottomSheet 展示的高度不会超过半个屏幕的高度,但是 fab

    2.3K20

    终于等到你,新的虚拟键盘API 即将到来,快来先睹为快吧!

    浏览器将向上滚动以使输入框在键盘上方,因此粘性标题和浮动按钮将消失。 它看起来与以下内容相似: 这是移动浏览器中的默认行为。...VirtualKeyboard API 的使用案例 底部固定操作 在较小的视口上,您可能需要一个固定在界面底部的呼叫行动按钮或页脚。 考虑下面的图示,我们有一个固定在底部的CTA按钮。...请看下图: 帖子表单和导航固定在底部。当用户激活输入字段时,它会显示如下: 注意垂直空间太小。怎么办?通过混合比较功能和虚拟键盘API,我们可以在键盘显示时隐藏导航。...当键盘激活时, max() 的第二部分将起作用, bottom 的值将变为键盘的高度。 Navigation 导航 导航位于 bottom: 0 。...max() 功能的第一部分是当前活动的部分。 当键盘激活时,我们将导航移动到键盘下方。这里的 100px 是一个随机数,重点是添加一个比导航高度更大的元素。

    37020

    Flutte部件目录-Material Components 顶

    一个显示在应用底部的材质小部件,用于在少量视图中进行选择,通常介于3到5之间。 底部导航栏由文本标签,图标或两者的多个项目组成,并放置在一块材料的顶部。 它提供了应用程序顶级视图之间的快速导航。...对于更大的屏幕,侧面导航可能更适合。 底部导航栏通常与Scaffold结合使用,在Scaffold.bottomNavigationBar参数中提供它。 底部导航栏的type会更改其条目的显示方式。...final items → List 放置在底部的导航栏内的互动条目....AlertDialog 警报是需要确认的紧急中断,通知用户有关情况。 AlertDialog小部件实现了这个组件。 ? BottomSheet 底部工作表从屏幕底部向上滑动以显示更多内容。...SnackBar 带有可选操作的轻量级消息,简要显示在屏幕底部。 ? 信息显示 Image 一个显示图像的小部件。 ? Icon 材质设计图标。 ?

    9.5K40
    领券