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

Navigation系列——进阶篇

Navigation系列——进阶篇 作者 大家好,我叫小琪; 本人16年毕业于中南林业科技大学软件工程专业,毕业后在教育行业做开发,后来于19年10月加入37手游团队; 目前主要负责国内发行相关开发...是谷歌的一个实现底部导航组件, app:menu属性为底部导航栏指定元素,新建一个bottom_nav_menu的menu资源文件 <?...使用Navigation+BottomNavigationView结合navigationUI扩展库,这种方式是不是相比于以往的实现方式更简单?...FragmentHome回调了onDestoryView()方法, [xp0e5gwklp.png] 再次点击首页切回到FragmentHome,神奇的事情发生了,原来的FragmentHome销毁了,却又重新创建了一个新的...我们知道replace方法每次都会重新创建fragment,所以使用Navigation创建的底部导航页面,每次点击切换页面当前fragment都会重建。

2.9K30

写一个MVVM快速开发框架:谈一谈“单Activity+多Fragment”模式

单Activity+多Fragment模式 自从知道这一招之后我基本不太愿意使用activity了,fragment可以快速创建和管理,可以合理设计页面跳转,设计炫酷的跳转动画,一些操作可以统一进行管理...我们可以使用它进行灵活的跳转,Google还出了一些Navigation Demo演示如何配合Toolbar和底部导航栏进行使用。 关于具体的用法这里不讲解了,很多文章都有,也可以参考官网。...Navigation 我们通常使用底部导航栏将app划分出不同的功能,这些都是单独的module,但是在navigation中怎么进行module间的跳转呢?...naviagtion都会重新初始化,导致性能消耗很大。...相关视频: 价值100w+Android项目实战大全:MVVM详解 Android()开发零基础从入门到精通:MVVM实战

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

AndroidStudio 开发基础知识【翻译完成】

三十九、 Jetpack 生命周期感知教程 四十、导航架构组件概述 四十一、 Jetpack 导航组件教程 四十二、在系统上创建和管理溢出菜单 四十三、运动布局介绍 四十四、运动布局编辑器教程...四十五、运动布局的关键周期教程 四十六、使用浮动动作按钮和 Snackbar 四十七、使用表格布局组件创建选项卡式界面 四十八、使用回收视图和卡片视图小部件 四十九、回收视图和卡片视图教程 五十、...三十五、使用手势检测器类检测常见手势 三十六、在上实现自定义手势识别 三十七、片段介绍 三十八、在 AndroidStudio 使用片段——一个例子 三十九、现代应用架构和 Jetpack...四十五、使用生命周期感知组件 四十六、 Jetpack 生命周期感知教程 四十七、导航架构组件概述 四十八、 Jetpack 导航组件教程 四十九、运动布局介绍 五十、运动布局编辑器教程...五十一、运动布局关键周期教程 五十二、使用浮动动作按钮和 Snackbar 五十三、使用表格布局组件创建选项卡式界面 五十四、使用回收视图和卡片视图小部件 五十五、回收视图和卡片视图教程 五十六、

3.1K30

ApacheCN 译文集 20211225 更新

二十三、支持不同版本的、音效和旋纽小部件 二十四、设计模式、多重布局和片段 二十五、构建简单的图片库应用 二十六、使用导航抽屉和片段的高级 UI 二十七、数据库 二十八、临别赠言 Kotlin...二十二、粒子系统和处理屏幕触摸 二十三、音效和旋转小部件 二十四、设计模式、多种布局和片段 二十五、带分页和滑动的高级用户界面 二十六、带有导航抽屉和片段的高级用户界面 二十七、数据库 二十八...、临别赠言 如何使用 Kotlin 构建安应用 零、前言 一、创建您的第一个应用 二、构建用户屏幕流 三、用片段开发用户界面 四、构建应用导航 五、基本库:RetroFit 库、Moshi 库和 Glide...Android Studio 应用开发 零、前言 一、安装和配置 Android Studio 二、启动项目 三、导航项目 四、使用代码编辑器 五、创建用户界面 六、谷歌游戏服务 七、工具 八、排除故障...Java 代码 使用片段创建动态 UI 零、前言 一、片段和用户界面模块化 二、片段和用户界面灵活性 三、片段生命周期和专业化 四、使用片段事务 五、创建丰富的导航 六、片段与材质设计 Unity

7.1K20

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

Fragment 目前Fragment作为演示使用,可以看到布局内容都非常简单,我这里只给出其中一个Fragment的创建过程和源码,项目完整源码可见文末的源码地址。...其实上面的代码存在性能问题,尤其是在底部导航这种场景中,Fragment之间的来回切换,这里使用的replace方法。关于这个方法带来的问题以及如何进行优化,将在下一节详细说明。...Fragment性能问题分析与解决 Fragment性能问题分析 我们上面是使用replace来切换页面,那么在每次切换的时候,Fragment都会重新实例化,重新加载一边数据,这样非常消耗性能和用户的数据流量...这是因为replace操作,每次都会把container中的现有的fragment实例清空,然后再把指定的fragment添加进去,就就造成了在切换到以前的fragment时,就会重新实例会fragment...switchToHome() { switchFragment(mGoodsFragment); } } 这样就达到了我们的目的,我们在来回切换的操作中,Fragment只实例一次,少了销毁又重新创建等带来的性能消耗

1.2K20

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

导航栏与页面跳转:使用谷歌官方提供的现成组件BottomNavigationView+Navigation组件+Fragment的方式来实现; FAB停靠导航栏:利用协调者布局CoordinatorLayout...由于谷歌官方有现成的导航相关组件BottomNavigationView和Navigation组件,一般来说如果没什么特殊需求的话只需要自己定义下导航路由图和底部导航菜单menu文件,定义导航item...以及每个item对应的页面使用Fragment组件来实现,页面跳转、item切换动画等的相关功能都是现成的,方便快捷。...: 创建好了带导航栏的Activity后界面默认是这样子的效果: 接下来就是根据需求在小细节上修修补补了,由于只需要显示两个导航item,另外需要在导航栏的中间给大按钮预留个空位,于是在导航栏的menu...的值,由此一来可以达到凹槽收缩的效果,按钮向下运动时同理: 另外还需要考虑按钮完全位于导航栏上方时的情况,这种情况下直接使用直线来代替原来的曲线部分。

11910

深入浅出 NavigationUI | MAD Skills

这是第二个关于导航 (Navigation) 的 MAD Skills 系列,如果您想回顾过去发布的内容,请参考下面链接查看: 导航组件概览 导航到对话框 在应用中导航使用 SafeArgs 使用深层链接导航...在本文中,我们将为大家讲解另外一个用例,即类似操作栏 (Action Bar)、底部标签栏或者抽屉型导航栏之类的 UI 组件如何在应用中实现导航功能。...我需要在应用中增加一些页面,所以有必要使用抽屉式导航栏或者底部标签栏来辅助用户导航。但是我们该如何使用这些 UI 组件来集成导航功能呢?通过点击监听器手动触发导航动作吗? 不需要!无需任何监听器。...这样,导航组件就可以将 MenuItem 与目的页面进行关联。...和之前针对 BottomNavigationView 所做的相类似,这里创建一个新的方法,并且调用 setupWithNavController() 函数将 navController 传入 NavigationView

3K30

Flutter-初试牛刀,入门篇

我感觉还行,至少在和苹果上运行起来基本一致。 3、涉及到的知识点 其实单看页面感觉涉及到的东西不多,但背后同时也隐含了很多。...、路由相关; 其他系统容器类组件、图片、文本等组件使用; 自定义了组件、页面(其实也是组件)等; Dart语言学习、Flutter中文档反反复复的去看; OK,一时想到的就这些了;放个工程全貌截图吧;...project.png 4、遇到的问题 别看一个简单的开始,遇到的问题太多,多的我都记不清有哪些了,反正佛挡杀佛、鬼挡杀鬼,一切问题直接干就得了; 问题1:导航栏相关: 系统自带的导航栏感觉好高,...所以我要抓包了看看咋回事; 然后又引入下一个问题: 按曾经的操作、设备安装证书、设置代理、IP等,结果没啥反应;、苹果设备来回换都是没反应。...问题4:Tab切换页面,切回原来的页面还是重新创建: bottomNavigationBar: BottomNavigationBar 每次来回切换,网络请求都要来一次,这样真的不好。

93530

ApacheCN 译文集(二)20211226 更新

七、性能考虑 八、分享我们的定制视图 九、实现你自己的 EPG 十、构建图表组件 十一、创建三维转轮菜单 探索安全改进 零、前言 一、Linux 访问控制 二、强制访问控制和 SELinux 三...七、使用 API 的人机交互 八、添加网络功能 Spring 即时入门 一、Spring 即时入门 意图学习手册 零、前言 一、了解 二、意图介绍 三、意图及其分类 四、移动组件和意图...五、使用意图的数据传输 六、使用意图访问安功能 七、意图过滤器 八、广播意图 九、意图服务和待定意图 精通应用开发 零、前言 一、入门指南 二、设计我们的应用 三、从云中创建和访问内容 四、并发和软件设计模式...五、片段 六、支持不同的屏幕尺寸 七、兼容包 八、新的连接 API——波束和 WIFI 直连 应用开发秘籍 零、前言 一、活动 二、布局 三、视图、小部件和样式 四、菜单 五、探索片段、应用小部件和系统用户界面...:调试和资源考虑 十一、最终考虑:应用编译和分发 片段管理即时操作指南 零、前言 一、片段管理即时操作指南 画布学习手册 零、前言 一、画布入门 二、使用线程来绘图 三、画布中的绘图和绘图工具

2.7K20

Android 如何实现气泡选择动画

Nougat 的底部导航到分屏特性,两个平台间有了许多相同之处。对设计师而言,我们可以将主流功能设计成两个平台一致(过去需要单独设计)。对开发者而言,这是一个提高、改进开发技巧的好机会。...所以我们决定开发一个气泡选择的组件库 —— 灵感来自于苹果音乐的气泡选择。 [strip] 先说设计 我们的气泡选择动画是一个好的范例,它对不同的用户群体有着同样的吸引力。...如果项目使用的是 Java,那么最方便的方式是在另一个文件编写你的着色器,然后使用输入流读取。如上述示例代码所示,Kotlin 可以简单地在类中创建着色器。...因此我需要为每个圆创建两个不同的 texture。 我使用 Bitmap 实例来创建 texture,绘制所有元素。...你可以随机的使用组件! 我们的组件可以让应用更聚焦内容、原始以及充满乐趣。

2.6K20

干货!iOS 与 Android 的APP 设计差异

左侧就是抽屉导航;右侧是标签栏 在Material Design中还有一个组件叫做底部导航。这个组件对于原生应用来说也非常重要。底部的菜单项很容易点击和操作。...但是规范其实不建议同时使用底部导航和标签,因为它可能会在导航时引起混乱。 底部导航(Material Design) 在Apple的人机交互规范中,没有类似抽屉菜单的标准导航控件。...正如你看到的那样,这个组件非常像端的底部导航,只是在iOS中这种形式的导航更加常用。...而对比规范,通常会把主要导航也放在汉堡菜单中。...用户对iOS中常见的老虎机形式的日期选择器并不熟悉。在Android中使用这种类型的日期选择器还需要重新布局,这样无形中增加了开发的难度和时间,并使界面看起来与系统风格格格不入。

3.3K10

《QQ音乐小电台》小程序开发

而音频播放API本质上是借助微信native的播放组件使用wx.navigateTo() 跳转到应用内的某个页面,会保留当前页面。...,微信旧版本上会检测playBackgroundAudio的title和coverImgUrl参数,后来fix这个bug,为了兼容之前版本,还是将参数传入。...IOS、播放暂停切歌 IOS,机下播放过程中先暂停在切换歌曲,发现播放的歌曲为原先的歌曲。...同步播放状态 机下播放一首歌曲且同时打开新页面(播放页),同步上一页面播放态,wx.getBackgroundAudioPlayerState在有歌曲播放的情况下status返回为2,且状态返回...5、列表渲染 wx:key 当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。

4.6K10

React Native 系列(八) -- 导航

NavigatorIOS使用步骤 初始化路由 注意:component,需要传入组件,自定义组件 NavigatorIOS上的按钮图片,默认会被渲染成蓝色 NavigatorIOS上的按钮,只能放一张图片...我们先创建一个HelloViewComponent.js组件,然后布局成上面效果图中的首页,它看起来是样子的: export default class HelloViewCompnent extends...:设置导航栏颜色 headerPressColorAndroid:独有的设置颜色纹理,需要版本大于5.0 gesturesEnabled:是否支持滑动返回手势,iOS默认支持...,默认关闭 screen:对应界面名称,需要填入import之后的页面 mode:定义跳转风格 card:使用iOS和默认的风格...直接在项目中导入就行: import {Navigator} from 'react-native-deprecated-custom-components' Navigator 使用步骤 创建 Navigator

6K80

使用导航组件: 条件导航 | MAD Skills

这是第二个关于导航 (Navigation) 的 MAD Skills 系列,本文是导航组件系列的第二篇文章,如果您想回顾过去发布的内容,请参考下面链接查看: 导航组件概览 导航到对话框 在应用中导航使用...在应用中使用条件导航的准备工作 这是自上一篇文章以来我所做 修改 的快速回顾: 首先,我添加了 UserPreferencesRepository,它使用 DataStore API 来保存用户的选择;...每次运行测试前都卸载应用或删除应用数据的话并不是最理想的效果。这就是测试 (Testing) 所要解决的问题!...测试导航 我在 androidTest 文件夹下创建了一个名为 OneTimeFlowTest 的测试类。然后我创建了一个名为 testFirstRun() 的测试方法,并为它添加 @Test 注解。...我使用 applicationContext 创建了 TestNavHostController(),我也为刚创建的 testNavigationController 实例设置了应用中的 nav_graph

1.6K30

利用BottomNavigationView实现底部标签栏

”,弹出下图所示的活动创建页面。...在创建页面的“Activity Name”一栏填写新活动的名称,再单击页面右下角的Finish按钮,Android Studio就会自动创建该活动的Java代码及其布局文件。...然后编译运行App,进入刚创建的活动页面,其界面效果如下图所示。可见测试页面的底部默认提供了三个导航标签,分别是Home、Dashboard和Notifications。 ?...R.id.text_home);         textView.setText("这是首页页面");         return root;     } 因为默认代码里的ViewModel并非必需组件...重新编译运行App,改过的各频道界面如下面各图所示,从上到下分别为首页频道、仪表盘频道、消息频道的页面效果,可见三个频道从标签文本和说明描述都改成了汉字。 ? ? ?

2.2K30

TAB导航与侧边抽屉导航的巅峰对决

你一定会首先想到去设计一个底部或顶部的Tab导航。等一下,多出来的一排导航看上去有点碍眼?我们尝试下把他们收到侧边栏里,或者叫团队给它的名字“侧边抽屉导航”。...目前,侧导航设备上比较流行,而iOS平台上使用的还不是很普遍。所以我们的讨论还要面对一个问题:和iOS应用是不是有一样的用户习惯,适用一样的导航模式?...举个例子,上图左边的方案,如果你没有看到引导,你可能真的找不到导航在哪里。如果找到了一次,你会在每次回来zeebox的时候都记得侧导航的入口吗?即使你记住了,每次切换栏目还是会需要点击两次。...而后,友好而乐于提供指导的Google Play团队建议侧边栏抽屉式导航(navigation drawers)作为一种新的导航方式用于应用。 所以6个月后,我们决定冒险尝试改为侧边栏导航。...而在上,他们又是怎么处理的呢。在我的设备上显示的是下图左一的方案(通过二级tab切换不同页面),在我同事的手机上显示的是右一的方案,通过(侧导航切换不同页面)。

2.7K70
领券