侨联网站建设方案常熟有哪些网站建设公司

web/2025/9/29 14:44:04/文章来源:
侨联网站建设方案,常熟有哪些网站建设公司,哪个网站的品牌特卖做的好,购买网站服务器code小生,一个专注 Android 领域的技术平台公众号回复 Android 加入我的安卓技术群作者#xff1a;DDDong丶链接#xff1a;https://www.jianshu.com/p/c8e8a0249911声明#xff1a;本文已获DDDong丶授权发表#xff0c;转发等请联系原作者授权问题分析一直在简书里看别人的… code小生,一个专注 Android 领域的技术平台公众号回复 Android 加入我的安卓技术群作者DDDong丶链接https://www.jianshu.com/p/c8e8a0249911声明本文已获DDDong丶授权发表转发等请联系原作者授权问题分析一直在简书里看别人的技术贴今天我也来写点自己的心得最近在写一个项目用到大量的Fragment后的总结我想刚刚接触安卓的同学或许会这么写FragmentManager fragmentManagergetSupportFragmentManager();FragmentTransaction fragmentTransactionfragmentManager.beginTransaction();fragmentTransaction.add(ViewId,fragment);// 或者fragmentTransaction.replace(ViewId,fragment);fragmentTransaction.commit();基础更好一点的同学会用show和hide方法FragmentManager fm  getSupportFragmentManager();FragmentTransaction ft  fm.beginTransaction();ft.hide(new FirstFragment())        .show(new SecondFragment())        .commit();诚然这两种都可以切换Fragment但是面对用户大量点击来回切换或者你的Fragment本来就很多每次都这样操作那么很快你的应用就会OOM就算不崩那也会异常的卡顿so why?当我们replace时发生了以下的生命周期image想想看每次都replace一下这世界会有多美好那么问题出在哪回过头看看代码就会发现每次在add/replace或者show/hide都会new 一个新的实例这就是致命原因废话不多说亮出我的方法(抽取后的) /** *  Fragment的添加 * param manager Fragment管理器 * param aClass 相应的Fragment对象的getClass * param containerId 容器的id * param args 需要传值的话可将bundle填入  不需要传值就填null */protected void addFragment(FragmentManager manager, Class extends BaseFragment aClass, int containerId, Bundle args) {    String tag  aClass.getName();    Logger.d(%s add fragment %s, TAG, aClass.getSimpleName());    Fragment fragment  manager.findFragmentByTag(tag);    FragmentTransaction transaction  manager.beginTransaction(); // 开启一个事务    if (fragment  null) {// 没有添加        try {            fragment  aClass.newInstance(); // 通过反射 new 出一个 fragment 的实例            BaseFragment baseFragment  (BaseFragment) fragment; // 强转成我们base fragment            // 设置 fragment 进入退出 弹进弹出的动画            transaction.setCustomAnimations(baseFragment.enter(), baseFragment.exit(), baseFragment.popEnter(), baseFragment.popExit());            transaction.add(containerId, fragment, tag);            if (baseFragment.isNeedToAddBackStack()) { // 判断是否需要加入回退栈                transaction.addToBackStack(tag); // 加入回退栈时制定一个tag以便在找到指定的事务            }        } catch (Exception e) {            e.printStackTrace();        }    } else {        if (fragment.isAdded()) {            if (fragment.isHidden()) {                transaction.show(fragment);            }        } else {            transaction.add(containerId, fragment, tag);        }    }    if (fragment ! null) {        fragment.setArguments(args);        hideBeforeFragment(manager, transaction, fragment);        transaction.commit();    }}/** * 除当前 fragment 以外的所有 fragment 进行隐藏 * * param manager * param transaction * param currentFragment */private void hideBeforeFragment(FragmentManager manager, FragmentTransaction transaction, Fragment currentFragment) {    List fragments  manager.getFragments();for (Fragment fragment : fragments) {if (fragment ! currentFragment  !fragment.isHidden()) {            transaction.hide(fragment);        }    }}略微解释一下先查询fragmentManager 所在的activitiy 中是否已经添加了这个fragment第一步 先从一个mAdded 的一个ArrayList遍历查找如果找不到再从 一个 叫 mActive 的 SparseArray的一个map里面查找。注意一个 fragment 被 remove 掉后只会从 mAdded 里面删除不会从 mActive 里面删除只有当这个fragment 所在的 transaction 从回退栈里面移除后才会 从mActive 删除当我们add 一个fragment时 会把我们的fragment 添加到 mAdded 里面不会添加到 mActive。只有当我们把 transaction 添加到回退栈的时候才会把我们的 fragment 添加到 mActive 里面。所以我们通过 findFragmentByTag 方法查找出来的 fragment 不一定是被添加到我们的 activity 中。使用代码比较多但是我个人感觉使用起来比较方便而且功能也比较完善使用的时候只需要两行代码HomeFragment1 homeFragment  new HomeFragment1();addFragment(getSupportFragmentManager(),homeFragment.getClass(),R.id.main_body,null);当我们需要传值的时候只需要将准备好的bundle以参数的形式填入即可。我还增加了一个是否加入回退栈的判断用于实现一些有关回退栈的需求实现这个功能还需要在BaseFragment中定义一个方法protected boolean isNeedToAddBackStack() {        return true;}也就这么点内容各位大佬如果看出什么问题或者有什么更好的方法欢迎大家在下方评论留言。推荐阅读浅谈 Activity,Fragment 模块化封装巧用 Fragment解耦 Android6.0 权限适配手记不怕巨人高就怕巨人还要踩在巨人肩膀上这样就很难超越了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做爰全过程的视频的网站wordpress简洁设置

当前elementui版本:2.8.2 现象:此处el-table__body-wrapper默认的滚动条宽度为8px,我加大到10px,如果不设置fixed一切正常,设置fixed后会被遮挡一点 el-table__fixed-right::before, .el-table__fixed::before 设置…

山东省城乡建设厅网站个人店铺logo

SpringCloud Greenwich集成dubbo先启动消费者(checkfalse),然后启动提供者无法自动发现注册问题。 官方说明:修复bug的提交时间 spring-cloud-starter-dubbo 2.2.4.RELEASE之前的版本都会有先启动消费者(checkfalse&am…

手机网站有什么区别吗深圳网站建设公司服务怎么做

join & detachjoin和detach为最基本的用法,join可以使主线程(main函数)等待子线程(自定义的function_1函数)完成后再退出程序,而detach可以使子线程与主线程毫无关联的独立运行,当主线程执行…

12数据网站建设西安网站建设价格明细

文章目录 📖 前言1. 通信背景1.1 进程通信的目的:1.2 管道的引入: 2. 匿名管道2.1 匿名管道的原理:2.2 匿名管道的创建:2.3 父子进程通信:2.3.1 read()阻塞等待 2.4 父进程给子进程派发任务:2.5…

找外贸工作哪个网站好网站后台服务

首先先介绍visibility这个CSS属性。 visibility用于表示该元素是否显示,其取值有: visible:设置对象可视。  hidden:设置对象隐藏。  collapse:主要用来隐藏表格的行或列,隐藏的行或列能够被其他内容是…

怎么查网站做站点地图西安千秋网络科技有限公司

以下是nuxt3中useFetch的函数签名,看起来很长有点乱对不对,但这还是我优化格式后的结果,不然更难看(原始的代码是在同一行里显示),泛型参数部分看红色的左右尖括号里的部分(各个泛型参数用红色的…

青岛网站建设与设计制作.net网站搭建

题目 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 示例 1: 输入:s “abciiidef”, k 3 输出:3 解释:…

网站首页布局设计模板WordPress邮箱注册慢

21、简单说一下说说置信区间、置信度。 ①置信区间是指由样本统计量所构成的总体参数的估计区间。通常以一个样本统计量的估计值为中心,加减一个标准误差的倍数,构成一个区间。 ②置信度是对置信区间的信心程度的度量,通常以百分比的形式表…

衡阳网站优化免费咨询网站优化都是怎么做的

真的非常感谢CnBlogs.com,因为有很多教程里写的知识点并不全面,而且也没附带例子.通过这里我学习到了很多很多.希望网站能越办越好哦.下面是我学习分布式开发时写的一个小demo,当然功能有限,技术也很低.希望大师们能拍拍砖,不吝赐教.呵呵软件运行的一个截图下面说说流程吧,1:利…

网站首页漂浮广告代码建设企业网站体会

在使用Vue.js进行开发时,将软件工程的原则和最佳实践应用到项目中,可以帮助提高项目的质量、维护性和团队的协作效率。以下是一些具体的建议: 1. 项目结构和模块化 合理组织项目结构:按功能或特性将代码组织成模块,使…

门头沟做网站公司网站建设资讯平台

这是头哥侃码的第241篇原创上周末,我读初中的儿子突然问我:“爸爸,你是不是从好买离职了?”我听完,忙惊讶地问他是怎么知道的。他朝我做了个鬼脸,然后指了指我的手机说:“你的文章写的如此生动&…

知名企业网站规划书无锡网站推广哪家公司好

1、简介Redis的五大数据类型也称五大数据对象;前面介绍过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisObject;这个对象系统包含了五大数据对象,字符串对象(st…

上海做原创网站怎么写微信小程序

*本文转载自公众号“Unity官方平台”。本文由视觉效果艺术家Evgeny Starostin分享如何使用Unity制作魔法火焰效果的过程,让我们一起学习和制作魔法火焰吧。下面是魔法火焰效果图。项目下载本文提供项目工程及着色器下载。本文为转载文章,请关注公众号“U…

网站建设的例子品牌网站建设只詢大蝌蚪

TQ210——S5PV210启动过程 1、S5PV210内存地址映射 S5PV210 含有一个大小为64KB的IROM,起始地址为0xD0000000,结束地址为0xD000FFFF;含有一个大小为96KB的 IRAM,起始地址为0xD0020000,结束地址为0xD0037FFF;内存起始地…

宝安中心站是几号线织梦图片网站源码

自定义函数 C语言提供了大量的库函数(右侧资料下载中有),比如stdio.h提供输出函数,但是还是满足不了我们开发中的一些逻辑,所以这个时候需要自己定义函数,自定义函数的一般形式: 注意&#xff1…

什么叫子网站10大免费软件下载

1.数据库的相关介绍 关系型数据库管理系统:(英文简称:RDBMS) 为我们提供了一种存储数据的特定格式,所谓的数据格式就是表, 在数据库中一张表就称为是一种关系. 在关系型数据库中表由两部分组成&#xf…

在线购物商城网站芜湖有没有网站建设公司吗

众所周知,在平台上网约车的时候,要是超出一定时间放鸽子,通常都是要扣除乘客部分钱,反之是司机取消了订单,平台同样会给司机处罚,在路程近的单子上,有些司机是接了后就不想跑,但是也…

网站开发多用什么语言可以免费做网站

来源:新浪科技摘要:虽然目前而言无线电天线仍然是太空通信的支柱,但目前未来发展方向是激光通讯系统。在太空中,没有人会听到你的尖叫——因为声音不会在真空中传播,而且你需要某种类型的无线电波中继携载这些信息&…

网站建设项目申请书简单的公司简介

1、API (1)基于linux做应用开发,其实就是通过调用linux系统提供的API来实现。 (2)API 是一些由linux系统提供的函数,给应用层使用,以完成一定的功能。 (3)常用的文件IO的…