今天把这项工作完成了,做成了单独的SwipeBackFragment库以及Fragmentation-SwipeBack拓展库
和尚我中午和朋友闲聊,被问到 Activity 与 Fragment 的生命周期,以为是很基础的东西,基本可以把生命周期说全,但是被问到 Activity 与 Fragment 交互的生命周期运行顺序,切换 Fragment 时候的生命周期顺序,以及切换完之后退出时的生命周期…瞬间感觉基础知识太不扎实了。 不禁问一下和尚自己:我真的了解 Fragment 的生命周期么?
因为最近的APP开发,使用的是单Activity + 多Fragment的方式,不同于以前基本界面都是Activity的方式,所以Fragment用了很多,想到自己以前也写了很多相关的基础知识,Fragment却从来没有写过,所以就打算补上一篇fragment的基础总结。
AndroidX 自 1.1.0-alpha07 起, 为 FragmentTransaction 增加了新的方法 setMaxLifeCycle, 官方建议开发者以此取代setUserVisibleHint,这将带来如下好处:
相比其它大多数 Android API,Fragments 近几年的变化要更大一些。最初它作为 Android 平台的一部分,后来成为 Android Support Library 的一部分,现在又以 AndroidX Fragments 的形式独立成为了 Jetpack 的一部分。
至于fragment的用法,fragment+viewpager的滑动切换代码请参考博文
Fragment创建完成后并不能单独使用,还需要将Fragment加载到Activity中,在Activity中添加Fragment的方式有两种:静态加载和动态加载,接下来分别进行学习。 一、静态加载 静态加载Fragment非常简单,直接把Fragment当成普通的控件写在Activity的布局文件中。使用<fragment></fragment>标签,该标签与其他控件的标签类似,但必须要指定android:name属性或class属性,其属性值为Fragment的全路径名称。 接
以前大部分时候都是将Activity作为页面,Fragment作为页面中的子页面(当时称之为碎片),基本上大部分功能由activity实现,比如老版本的淘宝app就是有上百个activity,当时卡顿的不要不要的。随着技术迭代,我们发现activtiy创建、切换、销毁所消耗的性能远比fragment要大,fragment如今也能替代activity实现大部分功能。
我们在创建Fragment的管理器的时候,会选择导入那个包下的FragmentManager.有app包下和v4包下的,这里我推荐用v4包的FragmentManager。理由如下:
Fragment作为Android最基本,最重要的基础概念之一,也是Activity的好搭档,在开发中经常会和他打交道。今天的三问就说关于Fragment:
序言 笔者在《软件设计的演变过程》一文中,将通信系统软件的DDD分层模型最终演进为五层模型,即调度层(Schedule)、事务层(Transaction DSL)、环境层(Context)、领域层(D
在 Android开发之奇怪的Fragment 一文中,讲到了Fragment的基础知识,这次来重点讨论一下Fragment的动态使用。这种情况主要针对布局文件中用占位符,在Activity中进行切换Fragment的情况,分为两种: 1、使用replace方法把原有的Fragment替换掉; 2、使用hide和show方法,把已经添加过的Fragment再次隐藏或显示出来。 下面主要探讨一下这两种情况之间的区别 1、使用replace方法把原有的Fragment替换掉 public class MainA
Fragment 就是一个 Activity 布局的一部分,可以把 Activity 的一部分布局抽离出来到 Fragment 中,并且 Fragment 也可以执行逻辑。就是把 Activity 复杂的内容抽离成几个碎片,然后拼凑起来,在 Activity 布局中,只需要引入各个不同的 Fragment 就可以 了。
各位花粉好久不见,本人还没有从假期综合征中恢复状态,但是想到还有你们在,所以我的动力就立刻被充满啦!一直跟着我们学习的花粉们肯定会好奇, Activity虽然已经学会了,但是还是无法实现像微信或者某东、某宝一样做到切换展示的样式,或者有的小伙伴是在点击时手动去显示和隐藏不同的布局页面,可是根本无法实现所想要达到的交互效果,本期我们为大家重点介绍一下如何实现类似效果。
Fragment代表了Activity的子模块,因此可以把Fragment理解成Activity片段。
不管你之前用没用过Jetpack Navigation组件,但是或多或少你也可能听说过它。它是Jetpack库中的一个路由组件。此刻你的脑海中可能会浮现阿里ARouter框架。如果你熟悉ARouter但是对Navigation比较陌生,那么你先简单把它们联系在一起,有个直观的感受。
我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。 但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后每个"小Activity"又可以拥有自己的布局。因此,我们今天的主角Fragment登场了。 Fragment初探 为
FrameLayout布局是安卓最简单的一个布局,它所有的控件都会被摆放在左上角。
https://developer.android.com/guide/navigation
与大千你我一样,皆是从 无架构到MVC->模块化->MVP-> MVVM->AAC->组件化AAC。
在使用 ViewPager 时 , 如果我们的适配器使用的是 FragmentStatePagerAdapter ,那么当我们重新滑到之前已销毁的页面时,一般情况下页面的状态依然将保持不变(比如 RecyclerView 的 滚动位置等,EditText 的 输入内容 等), 或者说 View 历史状态被还原了。
JSX 支持所有 aria-* HTML 属性。虽然大多数 React 的 DOM 变量和属性命名都使用驼峰命名(camelCased),但 aria-* 应该像其在 HTML 中一样使用带连字符的命名法(也叫诸如 hyphen-cased,kebab-case,lisp-case)。
Fragment是可以让你的app纵享丝滑的设计,如果你的app想在现在基础上性能大幅度提高,并且占用内存降低,同样的界面Activity占用内存比Fragment要多,响应速度Fragment比Activty在中低端手机上快了很多,甚至能达到好几倍!如果你的app当前或以后有移植平板等平台时,可以让你节省大量时间和精力。
本文继上一篇的Gradle多项目构建,来具体创建一个web项目,取名为kweb(king of web),代码托管于github:https://github.com/zhaiqianfeng/kweb.
随着大众生活水平的提高,再加上移动互联网的迅速发展,几乎每个人都至少拥有一台搭载Android系统的移动设备。Android设备的多样性给我们带来了很大的便捷,各Android设备拥有不同分辨率和不同屏幕大小,特别是平板电脑和手机间的差别巨大,使得同样的界面在不同的设备上显示出不同的效果。为了能够同时兼顾到手机和平板电脑的开发,自Android 3.0版本开始引入了碎片的概念,也就是Fragment。 Fragment作为Android最基本、最重要的基础概念之一,在开发中经常会用到,本章我
Android从3.0开始引入了Fragment的概念,中文意思为碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示。Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了。
5年以上开发经验,对架构设计以及性能调优有着深刻认知,负责京东商城商品详情的开发,热衷于学习和创新。
前言:前几篇文章讲解了ViewPager的普通实现方法,但android官方最推荐的一种实现方法却是使用fragment,下面我们使用fragment来重新实现一下第一篇《ViewPager 详解(一)—基本入门》所实现的效果。
前面一起学习了Fragment的创建和加载,以及其生命周期方法,那么接下来进一步来学习Fragment的具体使用,本期先来学习Fragment添加、删除、替换。 一、概述 在前面的学习中,特别是动态加载的时候,有提到FragmentManager和FragmentTransaction类,这里先来详细了解一下其到底为何物。 01FragmentManager 要管理Activity中的Fragments,就需要使用FragmentManager类。通过getFragmentMana
com.rust.fragment.SecondFragment 就是 Fragment 子类 在SecondFragment.java里复写onCreateView方法,并返回定义好的view
在上一期分享的文章末尾留了一个课后作业,有去思考如何解决吗?如果已经会了那么恭喜你,如果还不会也没关系,本期一起来学习。 一、回退栈 在前面两期的示例中,当我们完成一些操作后,如果想要回到操
fragment的使用时Android的基础,它有两种用法,第一个就是静态的fragment。第二个则是动态的fragment。 静态fragment直接在layout创建你想要的fragment的XML的文件,然后在你的Java包里面创建对应fragment的class文件 布局代码如下所示
此时,我们可能会用到EventBus这种全局分发事件的方式来处理,但种感觉不够优雅。
看了一篇关于ViewPager2软文后,我发现最新的Fragment代码淘汰了setUserVisibleHint方法,转而支持用setMaxLifecycle方法,setMaxLifecycle言外之意是设置最大生命周期,懂行的人应该知道,Fragment一直都是无法直接设置生命周期,必须通过add、attach、remove、detach、show、hide方法间接干预,本来就此功能,简单介绍一下setMaxLifecycle的原理和上手效果;
去面试的时候,我们也经常被问到这样的问题:项目用什么图片加载框架?为什么选择这个框架?glide是现在主流的图片加载框架,被问到的概率非常高。面试官这样问,最想听到的是什么答案?Lru算法原理还是三层缓存的理解?以我的理解,Lru和三层缓存是很基本的,一般的图片加载框架都用到,这应该不是面试官真正的目的。面试官最想问的应该是glide最大的优点是什么?并且能够针对源码讲出是怎么实现的。本篇文章将围绕这两个问题去讨论。
项目的目的是通过展示各种架构app的不同方式来帮助开发者解决架构问题。项目中通过不同的架构概念及方式实现了功能相同的app。你可以用示例来当做参考,或是干脆拿来当做创建app项目的基础。项目中,希望大家能把关注点集中到代码结构、整体架构、可测试性、可维护性这四个方面。当然实现app有很多种方式,千万不要把它当做定式。
打开 " res/navigation " 下的 Navigation Graph 的 Xml 配置文件 ,
一直对模板引擎的实现很好奇,正好看到了这篇文章,翻译一下,供大家学习、参考。原文和 GitHub 链接在文后。
ANDROID和福利两个Fragment是设置的Fragment可见时加载数据,也就是懒加载。圆形的旋转加载图标只有一个,所以,如果当前Fragment正处于加载状态,在离开该Fragment时需要隐藏加载动画,因为另一个Fragment并不一定处于加载状态,当返回Fragment时,如果还是处于加载状态,则要可以实现自动显示加载动画,如果数据已经加载完毕则不需要再显示出来。
一个Activity可以同时组合多个Fragment,一个Fragment也可被多个Activity 复用。Fragment可以响应自己的输入事件,并拥有自己的生命周期,但它们的生命周期直接被其所属的Activity的生命周期控制。 一、Fragment状态 与Activity类似的是,Fragment也存在如下4种状态: 运行状态:当前Fmgment位于前台,用户可见,可以获得焦点。 暂停状态:其他Activity位于前台,该Fragment依然可见,只是不能获得焦点。 停止状态:该Frag
本篇主要介绍一些最常见的Fragment的坑以及官方Fragment库的那些自身的BUG,并给出解决方案;这些BUG在你深度使用时会遇到,比如Fragment嵌套时或者单Activity+多Fragment架构时遇到的坑。
领取专属 10元无门槛券
手把手带您无忧上云