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

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

以及每个item对应页面使用Fragment组件来实现,页面跳转、item切换动画等相关功能都是现成,方便快捷。...对于这样效果我决定老老实实选择自定义BottomNavigationView,为所欲为哈哈哈!...只不过这看似挺简单效果,设计路径和计算相关尺寸大小实践起来还是挺麻烦,在废弃了n种方案之后决定出采用以下一种: 如上图所示,橙色实线为底部导航栏目标形状,canvas绘制原点默认在左上角,整个形状直线部分路径比较好确定...唉慢着,这凹槽深度不是还得跟随按钮位置动态变化吗,那这些坐标又当如何变动??老铁别急,下面继续来分析。...方法来更新中间圆心位置并重绘导航栏形状

9310

Android开发之漫漫长途 XIII——Fragment最佳实践

但是殊不知,TabHost并非是那么简单,它可扩展性非常差,不能随意地定制Tab显示内容,而且运行还要依赖于ActivityGroup。...好了,,下面我就来实现上图效果,不过在开始之前,首先你必须已经了解Fragment用法了,如果你对Fragment还比较陌生的话,建议先去阅读我前面的一篇文章Android开发之漫漫长途 XII——...,接着该更改BestFragmentActivity代码,更改源码如下 public class BestFragmentActivity extends AppCompatActivity{...其实上面的代码存在性能问题,尤其是在底部导航这种场景中,Fragment之间来回切换,这里使用replace方法。关于这个方法带来问题以及如何进行优化,将在下一节详细说明。...Fragment最佳实践,我们在许多主流App中都能看到这种顶部、底部导航效果,并且在此基础上我们探讨了使用Fragment不当存在性能问题及优化。

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

CorelDRAW 2019 软件应用项目(六)

要想做水面,就得把水涟漪做好可以在形状工具下找到涂抹这里只要用到笔尖半径,一般都会调到 3 到 1 有些细节地方可以更小涂抹会改变边缘界限,让边缘界线弯曲颜色也会随之变形这就会有一种涟漪效果,可以先用大笔尖把大体联谊做出来...,文字又不能那么硬,就可以用形状工具做转,旁边猫店形成圆角矩形。...五.绘制小船 用矩形工具画一个矩形,将它转曲,然后用形状工具点击锚点拖拽就可以改变形状,烟囱上面的烟形状是用钢笔工具画出来,然后复制粘贴,也可以用椭圆工具画一个椭圆或者圆形然后再用矩形工具画一个色块,...船锚 船身 调整后样式 但是这样效果还是和实体物分不开我们可以点击透明度工具,透明度工具相当于是一个遮罩,记住原理,黑遮白显你可以把船和水面同时选中,然后进行透明度更改也可以一个一个更改。...用透明度工具更改 六.作品展示

79660

导航: 多返回栈 | MAD Skills

如果您更倾向于视频形式,请 点击这里 查看视频内容。 概述 假设您应用使用了 BottomNavigationView。...支持多返回栈 让我们通过这个 仓库 中高级导航示例来看看实际效果。 该应用由 3 个标签页组成,每个标签页都有它自己导航流。...通过这些扩展函数,应用可以为每个标签页保持一个单独 NavHostFragment,每个 NavHostFragment 带有它自己返回栈,当用户切换标签页时,应用在不同 NavHostFragment...(navController) // 使用 navController 设置 ActionBar 以及 3 个一级目的地页面 appBarConfiguration =...注意这个行为是默认启用。 最后,让我们运行测试来验证是否一切正常。该应用已经拥有一些验证多返回栈行为测试。我运行 BottomNavigationTest 并观察每个底部导航行为测试运行。

79920

Android学习(简单使用Bottom Navigation Activity来实现底部导航栏)

好系统自带模板往往可以起到事半功倍效果。下面我们就来看看如何使用Bottom Navigation Activity来完成简单底部导航栏功能。...先来看一下效果图吧: 创建activity 首先在创建面板,我们选择 然后next,finish就OK了。创建成功以后我们来运行一下,发现 已经基本实现了底部导航栏功能了!...那么如何更改点击后页面呢? 自定义切换页面(Fragment) 这里我们使用framgment来切换页面。...还是先看一下效果,一个button和一个textview,点击button显示现在时间: 文件结构 之前版本创建后只有一个java文件,现在是有多个文件: dashboard,home,notifications...每个文件夹下有两个文件,一个是用来承载控件fragment,另一个是与之对应viewModel。

2K10

再不迁移到Material Design Components 就out啦

本指南将向您展示如何迁移代码库,以便您可以使用新属性,样式和小部件。 精简主题示例 本指南使用了精简应用程序来演示迁移过程。...MDC 1.1.0更改了一些默认小部件样式,以更好地符合“材料设计”准则。...下面我们通过一些常见迁移方案来了解一下这些问题 文字栏位改变 在 MDC 中,文字字段默认样式发生了改变。改进版本是经过用户调查研究。 ? 我们建议您使用这个版本,来提高可用性和可配置性。...要了解哪些窗口小部件适用于哪些形状类别,需要检查源代码中默认窗口小部件样式。 控件背景 实现此功能类为 MaterialShapeDrawable....默认情况下,所有的 MDC 控件都将此可绘制对象当做背景,我们也可以考虑将它用作自定义 View 背景。它可以处理形状主题、阴影、黑色主题等等。 因此。

3.1K30

深入浅出 NavigationUI | MAD Skills

在本文中,我们将为大家讲解另外一个用例,即类似操作栏 (Action Bar)、底部标签栏或者抽屉型导航栏之类 UI 组件如何在应用中实现导航功能。...但是我们该如何使用这些 UI 组件来集成导航功能呢?通过点击监听器手动触发导航动作吗? 不需要!无需任何监听器。...NavigationUI 依赖 MenuItem id,用它与导航图中目的页面的 id 进行匹配。我还为每个目的页面设置了图标和标题。...BottomNavigationView,并且将 bottom_nav_menu 设置为 BottomNavigationView menu 属性。...和之前对 ActionBar 所做操作一样,BottomNavigationView 通过匹配 MenuItem id 和导航目的页面的 id 来自动响应导航操作。

3K30

Flutter 构建完整应用手册-处理手势

处理点击 我们不仅希望向用户展示信息,还希望我们用户与我们应用进行互动! 那么,我们如何回应基本操作,如点击和拖动? 我们将使用GestureDetector部件!...borderRadius: new BorderRadius.circular(8.0), ), child: new Text('My Button'), ), ); 笔记 如果您想将材质涟漪效果添加到按钮中...添加材质涟漪效果 在设计应遵循材质设计指南应用程序时,我们希望在点击时将涟漪动画添加到部件。 Flutter提供InkWell部件来达到这个效果。...路线 创建条目列表 将每个项目包裹在Dismissible部件中 提供“向后消除”指标 1.创建条目列表 这个配方第一步是创建一个我们可以滑动项目列表。...有关如何创建列表更多详细说明,请按照使用长列表配方进行操作。 创建一个数据源 在我们例子中,我们需要20个样品条目。 为了简单起见,我们将生成一个字符串列表。

1.8K20

掌握Flutter底部导航栏:畅游导航之旅

导航是指底部导航栏中每个单独项目,通常由图标和标签组成,用于表示应用程序不同功能或页面。...Flutter提供了丰富选项,使开发者可以轻松自定义底部导航栏外观,包括选中颜色和图标、背景颜色和形状、导航栏高度以及图标的大小等。在本节中,我们将介绍如何实现底部导航栏自定义外观。...在本节中,我们将介绍如何实现底部导航栏一些高级功能,包括添加徽章、动态更改导航栏以及实现导航栏动画效果。...接着,我们讨论了如何自定义底部导航栏外观,包括更改选中颜色和图标、自定义背景颜色和形状、以及调整导航栏高度和图标大小等。...此外,我们还探讨了如何利用状态管理库(如Provider和Bloc)来管理底部导航栏状态,以及如何实现一些高级功能,如添加徽章、动态更改导航栏以及实现动画效果等。

12710

安卓Navigation系列——进阶篇

现在,我们有了新实现方式,Navigation+BottomNavigationView,废话不多说,先看最终要实现效果 [giek1s4udt.gif] 第一个实例 先确保引入了navigation...(navController) } } 通过NavigationUI库,将BottomNavigationView和navigation关联,就能实现上面的效果图了,是不是so easy!...至此我们具体分析了两个重要步骤,一个是navigator,一个是nav_graph.xml是如何被解析并关联到navController,弄清楚这两个步骤,对接下来分析大有帮助。...继承FragmentNavigator,重写它navigate方法,从而达到通过hide和show进行fragment切换目的。...navigate方法中,是通过replace方法达到fragment切换目的,因此会引起fragment重绘

2.9K30

CSS3、JS 探索三维粒子

这种类型动画可能非常适合页面加载器。 这套演示使用three.js和easing探索三维粒子动画。 这些演示中所有粒子和形状都是由三个基本几何体/材质/网格组成,如球体,线条和盒子。...概念 用很多小移动部件制作动画是非常有趣。对每个部件或组应用不同时序偏移和缓冲可以使一些有趣可视化。...5: 雨滴和涟漪 这个演示显示了一个雨滴效果,当它们碰到粒子表面时,会产生波纹。雨滴是由箱子在跌落时候伸出来。...当它们撞击时,会形成一个带有环涟漪物体,并形成一个影响粒子位置和不透明度不可见球体。 6: 旋转风扇 这个演示展示了三条形成浅锥形粒子线。每个粒子都有一条随机长度弧线。...最后,添加剂混合用于在粒子重叠时产生更明亮效果

3.9K10

Material Design 在 Android 中应用

分享时能够积极讨论,最终目的提高自身软实力,咱们程序员不能只知道敲代码,是吧?...确实,技术分享本来目的不就是为了让那些对分享主题不熟悉的人能有个大概了解,能够从中收获到一些在自己领域中得到应用技能,这就足够了。因此,在分享之前,自己要对分享知识点有个充分了解。...我想了下,就按照我做这个小项目,需要控件顺序说起吧,这样也相当于大家跟我一起做出一个具有Material Design风格APP了。 1、主题 一个项目的开始,你得先确定这个项目的主题颜色是什么?...那么底下就需要一个tab进行切换,BottomNavigationView便开始登场。从名字就可以看出 「底部导航view」,主要作用在于给每个模块一个导航定位功能。 先看一下效果: ?...6、CardView 列表结构写好了,里面内容得优化吧,CardView自带圆角和阴影效果,让每个Item看起来就非常自然,正如其名像卡片一样,也符合了Material Design特点。

1.2K20

Unity基础系列(三)——数学表面(数字雕刻)

它将会切换到新动画,好像什么都没有发生过。 虽然在播放模式中修改代码很方便,但在多个函数之间来回切换却并不方便。我们其实可以简单地更改图形配置选项来完成我们想要效果。 下面就看看怎么做吧。...2.3 双循环 虽然当前创建网格布局方法是可以达到效果了,但是if块使用还是很尴尬。在二维上循环一个更易读方法是在每个维度上使用一个单独循环。...(二维多正弦,合并三个波) 2.5 创建连漪 后面的教程里,我们开始弄点好玩2D效果。再创建一个2D函数,这一次它代表了一个表面上动画涟漪。让波纹向四面八方扩散,这样就得到了一个圆形图案。...(一个环) 因为函数还没有使用v,所以所有使用相同v输入点最终都位于完全相同位置。所以效果看起来只是一条线。如果要看这条线是如何绕成一个圆,让Y等于u即可。 ? ?...现在,你已经掌握了一些处理描述3D表面函数经验,以及如何将它们变可视化。所以可以尝试写自己函数,以便更好地掌握它工作原理。简单几个正弦波就能创造出许多看似复杂形状

1.5K40

欢迎体验 | Wear OS 版 Compose 开发者预览版

依赖 您对 Wear 设备作出大部分更改都将位于顶部 架构分层。 这就意味着面向 Wear OS 设计时,您搭配 Jetpack Compose 使用许多依赖不会发生变化。...开发者可以继续使用其他与 Material 相关开发库,如 Material 涟漪和通过 Wear Compose Material 开发库进行扩展 Material 图标。...可组合 我们来了解一些可以立即着手使用可组合。 一般来说,许多相当于移动版本 Wear 可组合可使用相同代码。样式 颜色、排版及使用 MaterialTheme 形状代码亦如此。...以下是开发库中一些可组合示例: 按钮 卡片 图标 文本 除此之外,我们还引入了许多可提升 Wear 体验全新可组合: Chip ToggleChip BasicCurvedText TimeText...我们还为列表提供了一个针对 Wear 优化可组合 ScalingLazyColumn,扩展了 LazyColumn并添加了缩放和透明度更改,以更好地支持圆形界面。

1.6K10

图标小结

8、小结各个图表英文单词balinescatter/effectScattepiemapradagauge图片使用场景柱状图:柱状图描述是分类数据,呈现是每一个分类中有多少折线图:折线图常用来分析数据随时间变化趋势散点图...:散点图可以帮助我们推断出不同维度数据之间相关性饼图:饼图可以很好地帮助用户快速了解不同分类数据占比情况地图:地图主要可以帮助我们从宏观角度快速看出不同地理位置上数据差异雷达图:雷达图可以用来分析多个维度数据与标准数据对比情况仪表盘...:仪表盘可以更直观表现出某个指标的进度或实际情况四、配置小结1、柱状图 baseries[].type xAxis yAxis markPoint markLine label...symbolSize图表类型 x轴 y轴 散点大小lineStyle showEffectOn rippleEffect scale线条风格 显示时机 涟漪效果...areaStyle shape图表类型 雷达图组件 雷达图指示器 文字 区域颜色 雷达图形状7、仪表盘 gaugeseries[].type max min

1.9K10

Maya 2022.3 for Mac(玛雅三维动画制作软件)

Maya 中3、运动图形工具集:利用实例化对象快速创建复杂程序效果和动画二、三维动画1、平行装备求值:新系统提高了装备播放和操纵速度2、测地线体素绑定:在更短时间内制作高质量、可立即投入使用绑定角色...3、常规动画工具:用于制作关键帧、程序和脚本化动画工具集4、时间编辑器:借助基于片段非破坏性和非线性编辑器进行高级动画编辑5、形状创作工作流:更加快速、轻松地微调您角色和动画6、动画性能:速度改进让您可以更快地制作出场景三...:更新了工作流、预设、雕刻和预览3、Bifrost 中自适应 Aero 解算器:创建大气效果,如烟和雾4、Bifrost 程序效果平台:仿真和渲染真实照片级液体5、Bullet Physics:创建真实刚体和柔体仿真...、涟漪和尾迹创建逼真的海洋表面五、三维渲染和着色1、其他外观开发着色节点:更轻松地对复杂场景进行着色2、增强外观开发工作流:以更艺术和直观方式对模型进行雕刻和塑形3、色彩管理:利用高效库,对多边形几何体执行更快速一致布尔运算操作...4、下一代视口显示和着色:在高保真、高性能交互式环境中工作,以更短时间编辑资源和图像5、Arnold 与 Maya 集成:使用 Arnold 渲染视图,实时查看场景更改,包括照明、材质和摄影机6、渲染设置

1K20

Adobe Premiere Pro 2021【PR 2022简体中文版】免费激活版下载PR2023安装教程

知识兔然后,您可以更改文本、颜色、大小、布局或情绪等变量知识兔,且不会改变整体美感,而且您还可以使用文本、知识兔形状和剪辑图层创建自己模板。...在您工作时,项目知识兔文件会记录您所有编辑决定,例知识兔如修建剪辑入点和出点和各个效果参数。编辑应用是非破坏性,知识兔这意味着Premiere Pro不会更改源文件。...默认情况下,每个项目知识兔都包括一个“项目”面板。这用作项目中使用所有剪辑存储知识兔区域。您可以使用“项目”面板素材箱来组织知识兔项目的媒体和序列。...同样,可以在同一目知识兔中存储一个序列多个变体(作为单独序列)。知识兔注意:无需通过为同知识兔一视频程序创建不同段或版本来保存项目的副本。只需在知识兔单个项目文件中创建新或重复序列。...当您有多个打开项目时,在关闭知识兔每个更改项目之前,可以看到此类消息:保存对“Project_X.pr知识兔proj”所做更改。您可以在不同项知识兔目之间拖动媒体或序列。

2K20
领券