如何判断Fragment是否展示

在android 开发中使用Fragment基本上是一个搞android的都知道的,他不知道方便了开发者模块化应用,而且方便开发者管理他的生命周期。但是我们很多人都是把Fragment 放到ViewPager中进行展示,让他达到更好的效果,可以滑动,可以点击切换,但是ViewPager 总是会加载当前页的前后俩页数据,那么也就会调用到其他Fragment的生命周期,可能达不到你预期的效果,如果你能知道你的Fragment什么时候展示给用户那么你就能进行一些操作来避免下。,也可以进行程序性能的优化,让你的程序更健壮。

@Override
	public void setUserVisibleHint(boolean isVisibleToUser) {
		super.setUserVisibleHint(isVisibleToUser);
	}

这个方法是Fragment自带的,从字面意思来看他就是用来判断是否对用户来说可见。

在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源。这样的结果,我们当然不会满意。那么,能不能做到当切换到这个fragment的时候,它才去初始化呢?

答案就在Fragment里的setUserVisibleHint这个方法里。请看关于Fragment里这个方法的API文档(国内镜像地址:Fragment
api
):

Set a hint to the system about whether this fragment's UI is currently visible to the user. This hint defaults to true and is persistent across fragment instance state save and restore.
An app may set this to false to indicate that the fragment's UI is scrolled out of visibility or is otherwise not directly visible to the user. This may be used by the system to prioritize operations such as fragment lifecycle updates or loader ordering behavior.
Parameters
isVisibleToUser true if this fragment's UI is currently visible to the user (default), false if it is not.

这个Fragment的UI是否是可见的。所以我们只需要继承Fragment并重写该方法,即可实现在fragment可见时才进行数据加载操作,即Fragment的懒加载。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-03 10:22:56

如何判断Fragment是否展示的相关文章

如何判断Fragment是否对用户可见

背景 最近在开发中遇到了一个问题.我们的app需要统计用户的页面路径,也就是用户使用各个页面的情况.这就需要在不同的页面跳入和跳出时记录下来.但是我们的app主要是由Fragment构成的.而在不同的使用情况下,判断Fragment是否可见的方法是不一样的.下面对这些不同的使用情况分开分析. 不同的情况 在Activity中直接使用 这种情况是最简单的,也就是在Activity使用XML引入,或者使用FragmentManager 的addFragment或者replaceFrament 动态载

Django开发Web页面html增加判断展示

实际操作 1.判断是则展示: 判断是 此处做一个判断是则展示更新的按钮,只有user_id为94的人员可以操作更新按钮. 2.判断否展示: 判断否 此处做一个判断否则展示借用按钮,只要phone_type不为1,登陆的人员就可以进行借用的操作. 原文地址:https://www.cnblogs.com/April-Chou-HelloWorld/p/9293366.html

Android Fragment 的使用,一些你不可不知的注意事项

Fragment,俗称碎片,自 Android 3.0 开始被引进并大量使用.然而就是这样耳熟能详的一个东西,在开发中我们还是会遇见各种各样的问题,层出不穷.所以,是时候总结一波了. Fragment 简介 作为 Activity 界面的一部分,Fragment 的存在必须依附于 Activity,并且与 Activity 一样,拥有自己的生命周期,同时处理用户的交互动作.同一个 Activity 可以有一个或多个 Fragment 作为界面内容,并且可以动态添加.删除 Fragment,灵活控

Fragment和ViewPager的使用和比较

Fragment是一种可以嵌入在活动当中的UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛.拥有自己的生命周期和接收.处理用户的事件.你可以动态的添加.替换和移除某个Fragment. Fragment使用非常广泛,在此不介绍Fragment的生命周期,本例子将使用Fragment实现如下效果: Message   Friend   Setting 图一 Message   Friend   Setting 图二 Message   Friend   Setti

Android之 Fragment

什么是Fragment: Android是在Android 3.0 (API level 11)开始引入Fragment的. 可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块. 可以把Fragment设计成可以在多个Activity中复用的模块. 当开发的应用程序同时适用于平板电脑和手机时,可以利用Fragment实现灵活的布局,改善用户体验. Fragment的意义:

android之Fragment(官网资料翻译)

Fragment要点 Fragment作为Activity界面的一部分组成出现 可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用. 在Activity运行过程中,可以添加.移除或者替换Fragment(add().remove().replace()) Fragment可以响应自己的输入事件,并且有自己的生命周期,当然,它们的生命周期直接被其所属的宿主activity的生命周期影响. 设计哲学 Android在3.0中引入了fr

Android Fragment 解析和使用

Android Fragment的生命周期和Activity类似,实际可能会涉及到数据传递,onSaveInstanceState的状态保存,FragmentManager的管理和Transaction,切换的Animation. 我们首先简单的介绍一下Fragment的生命周期. 大致上,从名字就可以判断出每个生命周期是干嘛的. AppCompatActivity就是FragmentActivity的子类,如果想使用Fragment,是要继承FragmentActivity,因为考虑到兼容的问

android中fragment卡顿的原因

首页的ViewPager有十几个Fragment,在快速切换的时候,容易产生卡顿现象. 二.分析当ViewPager切换到当前的Fragment时,Fragment会加载布局并显示内容,如果用户这时快速切换ViewPager,即Fragment需要加载UI内容,而又频繁地切换Fragment,就容易产生卡顿现象(类似在ListView快速滑动的同时加载图片容易卡顿). 三.处理方案1.Fragment轻量化如果ViewPager加载的Fragment都比较轻量,适当精简Fragment的布局,可

Android Api Component---翻译Fragment组件(二)

我们接着上一篇翻译吧Android Api Component---翻译Fragment组件(一) 与activity通信 尽管一个Fragment独立于一个Activity作为一个对象被实现并且在多个activity中被使用,给定的fragment实例绑定到了包含它的那个activity中. 特别的是,这个fragment使用getActivity()可以访问activity实例并且容易的执行像在activity布局中查找一个视图的任务: View listView = getActivity