Android利用碎片fragment实现底部标题栏(Github模板开源)


-
Fragment可以作为Activity的组成部分,一个Activity可以有多个Fragment,这篇文章主要介绍了Android利用碎片fragment实现底部标题栏(Github模板开源),需要的朋友可以参考下
-
2020-08-25
Caching Android Fragment ViewModel_course
2021-01-09<div><h2>💬 Questions and Help</h2> <p>Hi all,</p> <p>I have a quick question regarding caching of view models. </p> <p>I have an activity which is using a BottomNavigationView in order to display 4 different fragments. The Activity itself, has the following attributes: <br /></p> <pre><code> [MvxActivityPresentation] [Activity(Label = "Device", ScreenOrientation = ScreenOrientation.Portrait, LaunchMode = LaunchMode.SingleTop, Theme = "/AppTheme")] </code></pre> <p>And every fragment in my activity has the following attributes: <br /></p> <pre><code> [MvxFragmentPresentation(typeof(DeviceViewModel), Resource.Id.content_frame, true, IsCacheableFragment = true)] </code></pre> <p>where "content_frame" is the id of the activity's frame holding the fragments.</p> <p>I'm wondering if I can get some guidance vis-a-vis to the caching of the fragment view models. Some of these view models could potentially be doing some expensive work on </p><pre><code>Initialize</code></pre>, and I want to get to a point where if a fragment has already been opened, it will just load its state from a cache rather than recreating the view model every time. <br /> <p>Currently, I have an even listener registered on the BottomNavigationView to handle every item click, and based of the id, navigate to given view model like so: <br /></p> <pre><code> private void BottomNavigation_NavigationItemSelect(object sender, BottomNavigationView.NavigationItemSelectedEventArgs e) { ToggleNavItem(e.Item.ItemId); } private void ToggleNavItem(int selectedItemId) { switch(selectedItemId) { case Resource.Id.device_menu_overview: { ViewModel.ShowDefaultViewModelCommand.Execute(null); break; } case Resource.Id.device_menu_functions: { ViewModel.ShowDeviceFunctionsCommandAsync.Execute(null); break; } case Resource.Id.device_menu_variables: { ViewModel.ShowDeviceVariablesCommandAsync.Execute(null); break; } case Resource.Id.device_menu_events: { ViewModel.ShowDeviceEventsCommandAsync.Execute(null); break; } default: return; } } </code></pre> <p>The matching commands for this switch statement are initialised in the view model constructor like so: <br /></p> <pre><code> ShowDefaultViewModelCommand = new MvxAsyncCommand(async () => await _navigationService.Navigate<deviceoverviewviewmodel>()); ShowDeviceFunctionsCommandAsync = new MvxAsyncCommand(async () => await _navigationService.Navigate<devicefunctionsviewmodel>()); ShowDeviceVariablesCommandAsync = new MvxAsyncCommand(async () => await _navigationService.Navigate<devicevariablesviewmodel>()); ShowDeviceEventsCommandAsync = new MvxAsyncCommand(async () => await _navigationService.Navigate<deviceeventsviewmodel>()); </deviceeventsviewmodel></devicevariablesviewmodel></devicefunctionsviewmodel></deviceoverviewviewmodel></code></pre> <p>I'm aware that the navigation service also allows you to pass in a view model instance into the navigate method, rather than the method above, but I am unsure how MvvmCross caches view models internally, and if not, how I can go about creating my own cache for this situation.</p> <p>Let me know if I can provide any more detail to help on this one, I very much appreciate the help Liam</p><p>该提问来源于开源项目:MvvmCross/MvvmCross</p></div>
Android Fragment底部选项卡,如何能在跳转二级、三级甚至更多层页面时也保持活动状态_course
2017-12-24Android Fragment底部选项卡,如何能在跳转二级、三级甚至更多层页面时也保持活动状态,如题:项目中要用到,在Fragment多层子界面依然可以进行Fragment之间的传递,如: A Fragment > A按钮 > A界面 > A按钮 > C Fragment > C界面,当点击返回时,返回A界面(从A界面进入C界面时,如从C Fragment进入则返回C Fragmeent) Ps: 当从A界面 > C Fragment时,底部选项卡的显示也要进行相关切换...... 上述就是需求了,之前Fragment子界面是在布局中直接引用自定义View来实现底部选项卡不被覆盖的,但这样并不好,因为它没有自己的生命周期导致扩展不行,想把Fragment子界面换成有自己生命周期的,但无从下手,请大牛们指点下,感激......
Mysql数据库基础入门视频教程
2018-10-24Mysql数据库基础入门视频课程:属于零基础Mysql数据库教程,从数据库的基本专业术语介绍到数据库软件的下载使用 一步一步带你安装MySql。SQL阶段你将学会如果使用数据定义语言DDL,数据操作语言DML,数据查询语言DQL 在学会各中查询语句之后,会带你学习数据的完整性, 掌握如果正确的向数据库中添加数据 以上掌握技能之后,将会带你学习如何进行多表操作,关系的建立,各种连接查询等. 常用函数,事务的学习,您将学到什么是事务的提交,回滚,并发操作及脏读,幻读. 最后视图,存储过程,索引的学习,将会带你掌握更高级的数据库技术.
7.25MB
四史答题软件安装包exe
2021-02-28四史答题软件安装包exe
309KB
obs-multi-rtmp_Windows_0.2.4.zip
2020-07-10OBS多路推流插件obs-multi-rtmp
程序员的数学:微积分
2019-09-28本课程介绍程序员必备的数学基础内容,在取材上侧重人工智能、数据分析等热门领域
Java系列技术之JavaWeb入门
2018-09-18JavaWeb里的基础核心技术
JAVA入门精品课程
2018-12-20课程目标: 1、让初学者从小白开始,善于运用知识点,解脱学习的苦恼 2、能够学习更多的工作中使用技巧,成为编程高手
2020华为HCIA/HCNA/数通/路由交换/实验/视频/教程/持续更新赠题库
2020-05-25本课程不仅可以帮助大家顺利考取华为HCIA证书,同时技术视频均为理论+实战配套讲解,讲解细致,通俗易懂,资料完整,可以让大家学到实实在在企业用到的网络技术,本课程包含完整的学习资料,视频+PPT课件,能够帮助你快速掌握HCIA数通网络技术,同时视频中3-4视频后面的附件课件包含了HCIA数通考试题库(带答案),适合从零基础学网络考HCIA的同学!
-
下载
veganreport:조사조-源码
veganreport:조사조-源码
-
学院
CCNA_CCNP 思科网络认证 《 站点间 NNN 与 远程访问 V
CCNA_CCNP 思科网络认证 《 站点间 NNN 与 远程访问 V
-
博客
Nvidia deepstream发送接收metadata
Nvidia deepstream发送接收metadata
-
学院
CCNA_CCNP 思科网络认证 《 广域网 帧中继和永久虚电路 》
CCNA_CCNP 思科网络认证 《 广域网 帧中继和永久虚电路 》
-
博客
java stack trace for_junt test方法里的事务完后DEBUG STACK TRACE for PoolBackedDataSource.close()....
java stack trace for_junt test方法里的事务完后DEBUG STACK TRACE for PoolBackedDataSource.close()....
-
学院
CCNA_CCNP 思科网络认证 静态路由(默认路由、路由汇总、浮动路
CCNA_CCNP 思科网络认证 静态路由(默认路由、路由汇总、浮动路
-
博客
Immunity Canvas安装指南|附赠安装好的虚拟机
Immunity Canvas安装指南|附赠安装好的虚拟机
-
下载
使用基于线性CCD的流成像系统对斑马鱼胚胎进行高通量成像
使用基于线性CCD的流成像系统对斑马鱼胚胎进行高通量成像
-
下载
myApp-源码
myApp-源码
-
博客
JavaScript——对象
JavaScript——对象
-
学院
MySQL DML 语言(插入、更新与删除数据)
MySQL DML 语言(插入、更新与删除数据)
-
下载
Laravel-TDD:Api con TDD en laravel-源码
Laravel-TDD:Api con TDD en laravel-源码
-
博客
leetcode——买卖股票的最佳时机II
leetcode——买卖股票的最佳时机II
-
博客
2021年游戏建模学习路线:十二步教你学会3d游戏建模,成功入行
2021年游戏建模学习路线:十二步教你学会3d游戏建模,成功入行
-
下载
MATLAB及其在数学建模中的应用
MATLAB及其在数学建模中的应用
-
学院
朱老师鸿蒙系列课程第1期-2鸿蒙系统Harmonyos源码架构分析
朱老师鸿蒙系列课程第1期-2鸿蒙系统Harmonyos源码架构分析
-
下载
AutoBuild-OpenWrt-源码
AutoBuild-OpenWrt-源码
-
博客
铁水包-吊链链条-吊钩无损探伤检测-磁粉探伤检测
铁水包-吊链链条-吊钩无损探伤检测-磁粉探伤检测
-
学院
MySQL 触发器
MySQL 触发器
-
博客
python日期迭代_在Python中迭代一系列日期
python日期迭代_在Python中迭代一系列日期
-
学院
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
学院
C语言零基础入门(详细讲解)
C语言零基础入门(详细讲解)
-
学院
2021年软考系统规划与管理师-上午历年真题解析视频课程
2021年软考系统规划与管理师-上午历年真题解析视频课程
-
学院
MySQL 性能优化(思路拓展及实操)
MySQL 性能优化(思路拓展及实操)
-
下载
ameritradedatacollection-源码
ameritradedatacollection-源码
-
学院
CCNA_CCNP 思科网络认证 三层交换机(VTP 简化 VLAN
CCNA_CCNP 思科网络认证 三层交换机(VTP 简化 VLAN
-
学院
MySQL 管理利器 mysql-utilities
MySQL 管理利器 mysql-utilities
-
博客
2021-03-06
2021-03-06
-
博客
java stack trace for_c3p0连接池 java.lang.Exception:DEBUG STACK TRACE for PoolBackedDataSource.close() ...
java stack trace for_c3p0连接池 java.lang.Exception:DEBUG STACK TRACE for PoolBackedDataSource.close() ...
-
博客
npm ERR! Error: EPERM: operation not permitted, mkdir ‘C:\Program Files\nodejs
npm ERR! Error: EPERM: operation not permitted, mkdir ‘C:\Program Files\nodejs