fragment切换

android基础—Fragment学习笔记

一曲冷凌霜 提交于 2020-04-01 18:08:39
随着移动设备的飞速发展,平板电脑也变得越来越普及。平板电脑和手机最大的区别就在于屏幕的大小,一般手机屏幕的大小会在 3 英寸到 5 英寸之间,而一般平板电脑屏幕的大小会在 7 英寸到 10 英寸之间。屏幕大小差距过大有可能会让同样的界面在视觉效果上有较大的差异,比如一些界面在手机上看起来非常美观,但在平板电脑上看起来就可能会有控件被过分拉长、元素之间空隙过大等情况。 作为一名专业的 Android 开发人员,能够同时兼顾到手机和平板的开发是我们必须要做到的事情,所以android3.0引入了Flagment的概念,它可以让界面在平板上更好的展示。 参考: 1. 第一行代码160页 2. http://blog.csdn.net/lmj623565791/article/details/37970961 1. Flagment的概念 Flagment也被称为碎片,是一种可以嵌入在Activity中的 UI 片段,它能让程序更加合理和充分地利用大屏幕的空间。 在很多情况下,都是先针对手机开发一套App,然后拷贝一份,修改布局以适应平板神马超级大屏的。难道无法做到一个App可以同时适应手机和平板么,当然了,必须有啊。Fragment的出现就是为了解决这样的问题。 你可以把Fragment当成Activity的一个界面的一个组成部分

Android基础-Fragment详解

余生长醉 提交于 2020-03-25 07:45:23
一、目录 什么是Fragment Fragment的生命周期 Fragment的使用方式 什么是Fragment的回退栈?【重要】 Fragment与Activity之间的通信【难点】 Fragment与Activity通信的优化【超难点】 如何处理运行时配置发生变化【以屏幕翻转为例】 二、Fragment详解 1.什么是Fragment? 你可以简单的理解为,Fragment是显示在Activity中的Activity。 它可以显示在Activity中,然后它也可以显示出一些内容。因为它拥有自己的生命周期,可以接受处理用户的事件,并且你可以在一个Activity中动态的添加,替换,移除不同的Fragment,因此对于信息的展示具有很大的便利性。 2.Fragment的生命周期 因为Fragment是依附于Activity存在的,因此它的生命周期收到Activity的生命周期影响: Fragment比Activity多了几个生命周期的回调方法 onAttach(Activity) 当Fragment与Activity发生关联的时候调用 onCreateView(LayoutInflater, ViewGroup, Bundle) 创建该Fragment的视图 onActivityCreate(Bundle) 当Activity的onCreated方法返回时调用

Android学习之Fragment解析

青春壹個敷衍的年華 提交于 2020-03-17 08:03:11
1.定义 Fragment中文解释是碎片的意思,主要用在大屏幕设备上,例如平板电脑上,支持更加动态和灵活的UI设计。 Fragment在你的应用中相当于是一个模块化和可重用的组件,因为Fragment定义了它自己的布局,以及通过使用它自己的生命周期回调方法定义了它自己的行为,你可以将Fragment包含到多个Activity中。 2.特点 (1)Fragment可以作为Activity界面的一部分组成出现; (2)可以在一个Activity中同时出现多个Fragment,并且一个Fragment也可以在多个Activity中使用; (3)在Activity运行过程中,可以添加、移除或者替换Fragment; (4)Fragment可以响应自己的输入事件,并且有自己的生命周期,它们的生命周期会受宿主Activity的生命周期影响。 3.生命周期 Fragment必须是依存于Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期。 生命周期中涉及的方法如上图所示,具体触发条件如下所述。 onAttach() 当Fragment被添加到Activity时候会回调这个方法,并且只调用一次; onCreate() 创建Fragment时会回调,只会调用一次; onActivityCreated() 当Fragment所在的Activity启动完成后调用

Android之Fragment

不问归期 提交于 2020-03-17 01:15:24
某厂面试归来,发现自己落伍了!>>> Fragment(碎片)概括: Fragment是依赖于Activity的,不能独立存在的。 一个Activity里可以有多个Fragment。 一个Fragment可以被多个Activity重用。 Fragment有自己的生命周期,并能接收输入事件。 我们能在Activity运行时动态地添加或删除Fragment。 优势: 模块化(Modularity):我们不必把所有代码全部写在Activity中,而是把代码写在各自的Fragment中。 可重用(Reusability):多个Activity可以重用一个Fragment。 可适配(Adaptability):根据硬件的屏幕尺寸、屏幕方向,能够方便地实现不同的布局,这样用户体验更好。 核心类: Fragment:Fragment的基类,任何创建的Fragment都需要继承该类。 FragmentManager:管理和维护Fragment。他是抽象类,具体的实现类是FragmentManagerImpl。 FragmentTransaction:对Fragment的添加、删除等操作都需要通过事务方式进行。他是抽象类,具体的实现类是BackStackRecord。 Nested Fragment(Fragment内部嵌套Fragment的能力)是Android 4.2提出的,support

Fragment和FragmentActivity的使用方法 .

强颜欢笑 提交于 2020-03-02 05:21:34
认识:首先我们知道Fragment是我们在单个Activity上要切换多个UI界面,显示不同内容。模块化这些UI面板以便提供给其他Acitivity使用便利。同时我们显示的Fragment也会受到当前的这个Acitivity生命周期影响。(而平常的Fragment有其自己的生命周期) 一、使用方法: 1、创建一个或者多个你需要的Fragment类,其实就是类似activity一样,也有OnCreate()等回调函数。 2、如果要让当前的程序也就是Activity使用Fragment的话,需要把Acitivity中相关的回调函数内容搬过去。you might simply move code from your activity's callback methods into the respective callback methods of your fragment 一般地,我们需要以下回调函数: onCreate() onCreateView() onPause() 除了以上3个我们基本上都要用到的回调函数方法,那么我们写得Fragment中还有其他: Handling the Fragment Lifecycle 二、关于继承Fragment类 除了基本的Fragment类,我们还可以继承的有: DialogFragment ListFragment

Activity和Fragment生命周期对比

僤鯓⒐⒋嵵緔 提交于 2020-02-29 03:41:26
Fragment生命周期 onAttach onCreate onCreateView onActivityCreate ______以上相当于Activity的onCreate方法 onStart ______相当于Activity的onStart方法 onResume ______相当于Activity的onResume方法 onPause ______相当于Activity的onPause方法 onStop ______相当于Activity的onStop方法 onDestroyView onDestroy onDetach ______以上相当于Activity的onDestroy方法 当Activity包含一个Fragment的时候,Activity和Fragment生命周期的变化: Activity(onCreate)---> Fragment(onAttach onCreate onCreateView onActivityCreate)---> Activity(onStart)---> Fragment(onStart)---> Activity(onResume)---> Fragment(onResume)---> Fragment(onPause)---> Activity(onPause)---> Fragment(onStop)---> Activity

ViewPager+Fragment取消预加载(延迟加载)

早过忘川 提交于 2020-02-24 11:53:25
在项目中,都或多或少地使用的Tab布局,所以大都会用到 ViewPager+Fragment ,但是Fragment有个不好或者太好的地方。例如你在ViewPager中添加了三个Fragment,当加载ViewPager中第一个Fragment时,它会默认帮你预先加载了第二个Fragment,当你加载第二个Fragment时,它会帮你加载第三个Fragment。这样虽然有时很好,但是用户只需看一个Fragment时,我们就做了一些多余工作加载了第二个Fragment。在这只需要取消Fragment的预加载即可,只有当用户切换到某个Fragment才加载.. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 import android.support.v4.app.Fragment; public abstract class BaseFragment extends Fragment { /** Fragment当前状态是否可见 */ protected boolean isVisible; @Override public void setUserVisibleHint(

Android Jetpack(六)Navigation

╄→гoц情女王★ 提交于 2020-02-21 19:06:05
一、Navigation 介绍 Navigation 是 Jetpack 组件库的一个组件, 可以方便的管理 Fragment ,可以看作是针对于 Fragment 的路由。 功能主要是: 用于管理 APP 页面跳转导航 ,同时, 切换 Fragment 变得更加直观 ,通过 可视化界面 展示 Fragment 的切换流程图。 利用 Navigation 组件对 Fragment 的原生支持,可以获得架构组件的所有好处(例如生命周期和 ViewModel),同时让此组件来处理 FragmentTransaction 的复杂性。此外,Navigation 组件还可以处理转场动画。它可以 自动构建正确的“向上”和“返回”行为 ,包含对深层链接的完整支持,并提供了帮助程序,用于将导航关联到合适的 UI 小部件,例如抽屉式导航栏和底部导航。 除此之外,Navigation 最大的一个好处是: 让单 Activity 应用成为首选架构(即: 单 Activity + 多 Fragment ) 。应用内 Fragment 页面的跳转则由 Navigation 来处理,开发者无需在处理 FragmentTransaction 的复杂性以及相关的转场动画。 二、 Navigation 核心概念 NavGraph:导航图 ,一个 XML 资源,它包含集中在一个位置上的所有与导航相关的信息

fragment -重影问题

蹲街弑〆低调 提交于 2020-02-15 03:50:38
fragment -重影问题 造成fragment重影的原因: 代码里用add fragment 然后调用hide和show来替换replace方式 这样做不用每次切换fragment都重新加载界面和数据 但是正因为这样当我们activity异常关闭重启时你原先的所有fragment也都会跟着activity重新绘制出来,然而这个时候所有的hide和show失灵了, 因为我们默认是没有找到系统帮我们恢复的fragment,而是自己又重新new了一个fragment出来 解决这个问题的核心就是找到系统帮我恢复的fragment并操作相应方法 以上采用add fragment调用hide 和show来替换replace的方式,解决重影问题大都是采用以下方式解决: 重写onSaveInstanceState()方法注释掉super.onSaveInstanceState(outState)这句代码,这样activity就不会保存原fragment的实例了 @Override protected void onSaveInstanceState(Bundle outState) { // super.onSaveInstanceState(outState); } 由于这边界面显示不需要加载任何的数据,直接采用replace替换布局的方式显示内容 //默认启动时显示的页面

Android之Fragment的优点和作用

房东的猫 提交于 2020-02-09 18:10:37
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34927117/article/details/68067040 一:什么是Fragment 碎片、片段。其目的是为了解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了fragments。   fragments 在活动Activity中为不同的屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多)。   Fragment必须被写成可重用的模块。因为fragment有自己的layout,自己进行事件响应,拥有自己的生命周期和行为,所以你可以在多个activity中包含同一个Fragment的不同实例。这对于让你的界面在不同的屏幕尺寸下都能给用户完美的体验尤其重要。 二、Fragment优点 1.Fragment可以使你能够将activity分离成多个可重用的组件,每个都有它自己的生命周期和UI。 2.Fragment可以轻松得创建动态灵活的UI设计,可以适应于不同的屏幕尺寸。从手机到平板电脑。 3.Fragment是一个独立的模块,紧紧地与activity绑定在一起。可以运行中动态地移除、加入、交换等。 4