public abstract class BaseFragment<P extends BasePresenter,M extends BaseModel> extends Fragment {
/**
* 视图是否已经初初始化
*/
public Activity mActivity;
public P mPresenter;
public M mModel;
private Unbinder bind;
public boolean isViewInited = false;
public boolean isVisibleToUser = false;
@Override
public void onAttach(Context context) {
mActivity = (Activity) context;
super.onAttach(context);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View inflate = inflater.inflate(getFragmentLayoutId(), container, false);
bind = ButterKnife.bind(this, inflate);
init();
isViewInited = true;
if (isViewInited && isVisibleToUser)
initData();
return inflate;
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
this.isVisibleToUser = isVisibleToUser;
Log.e("TAG",isVisibleToUser+"--"+this.getClass().getName());
if(isVisibleToUser&&isViewInited){
initData();
}
}
@Override
public void onDestroy() {
bind.unbind();
mActivity = null;
super.onDestroy();
}
private void init() {
mPresenter = TUtils.getT(this, 0);
mModel = TUtils.getT(this, 1);
if (this instanceof BaseView) {
mPresenter.setMv(mModel, this);
}
initView();
}
protected abstract void initView();
protected abstract void initData();
public abstract int getFragmentLayoutId();
}
相关推荐
ViewPager不设置预加载和Fragment只加载一次
今日写了一个 ViewPager 和 Fragment 配合使用,达到 ViewPager 不设置预加载(也就是一次只加载一个)和 Fragment 懒加载(也就是只加载一次)。通俗的说就是滑动或点击哪个便加载哪个,并且加载过的不再加载。
Fragment极度懒加载-+-Layout子线程预加载,奇妙的APP启动速度优化思路
public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public CharSequence getPageTitle(int position) { return mPageTitleList.get(position); } @Override public int getCount() { return mCount; } @Override public long getItem
ViewPager+Fragment取消预加载(延迟加载)
ViewPager+Fragment取消预加载(延迟加载),详情请看:http://blog.youkuaiyun.com/myatlantis/article/details/42643733
Android Fragment预加载和懒加载
fragment预加载 懒加载 viewpager有着预加载机制:默认一次加载当前页面前后两个页面,即使设置setOffLimit(0)也没有效果。 虽然预加载优化了app的体验效果,但是这样把我们看不到的页面的数据也加载了,大大降低了性能,浪费初始化资源。 什么是懒加载:懒加载的定义。 当页面可见的时候,才加载当前页面。 没有打开的页面,就不会预加载。 说白了,懒加载就是可见的时候才去请求数据。 主要的方法是Fragment中的setUserVisibleHint(...
Android 开发中fragment预加载问题
我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用,而如果每个fragment都需要去加载数据,或从本地加载,或从网络加载,那么在这个activity刚创建的时候就变成需要初始化大量资源。这样的结果,我们当然不会满意。那么,能不能做到当切换到这个fragment的时候,它才去初始化呢? 答案就在Fragment里的setUserVisibleHint这个方法里。请看关于Fragment里这个方法的API文档(国内镜像地址:http://zdz.la/YrpKlu): Set a hint to the system abo
Win11下USB-Blaster驱动安装全攻略:Quartus用户必看(附常见问题解决)
本文详细介绍了在Windows 11系统下为Intel FPGA开发工具Quartus安装USB-Blaster驱动的完整流程与常见问题解决方案。针对Win11更严格的驱动签名验证机制,提供了从标准安装步骤到高级故障排查(如禁用驱动强制签名、使用测试模式)的实用指南,帮助用户快速解决驱动安装失败问题,确保FPGA编程调试顺利进行。
Android插件化开发指南——实践之ViewPager+Fragment优化(预加载和懒加载)
文章目录1. 前言2. ViewPager+Fragment优化2.1 预加载2.2 懒加载3. 后记 1. 前言 ViewPager+Fragment的组合比较适合用来做页面的导航,这里因为在Android插件化开发指南——实践之仿酷狗音乐首页一文的实践中需要用来这块的知识。为了app加载更加流畅,这里考虑使用预加载和懒加载两种机制。当然,这里对于ViewPager+Fragment的简单实现,这里记录下: 首先定义好ViewPager控件: <androidx.viewpager.widget.V
『与善仁』Appium基础 — 19、元素定位工具之UI Automator Viewer
文章目录(一)uiautomatorviewer定位工具1、uiautomatorviewer介绍2、uiautomatorviewer工具打开方式3、uiautomatorviewer布局介绍4、uiautomatorviewer工具的使用 之前我们在做web页面自动化的时候就说过,元素定位是页面自动化的第一步。 同理App自动化测试的第一步,也是元素的定位。 在APP中定位元素的话,需要借助一些元素定位工具。 APP中的元素定位工具大致有三种: uiautomatorviewer Appium Ins
Android Fragment预加载与懒加载问题
Fragment预加载:当ViewPager+Fragment实现滑动页面时,当进入第一个页面时,第二个页面的内容(即页面需要填充的内容或逻辑)就会被提前加载出来,这会严重影响性能。 Fragment懒加载:为解决Fragment预加载导致性能降低出现的方法。 Fragment懒加载包括两种方式: 1、禁止Fragment预加载,重写ViewPager,但是这种方式会导致滑动卡顿,影响用
STM32G474多通道ADC电压采集:软件触发与单次转换实战
本文详细介绍了STM32G474多通道ADC电压采集的实战方法,重点讲解了软件触发与单次转换的实现技巧。通过硬件设计、HAL库配置、多通道轮询采集及数据处理等环节的详细解析,帮助开发者高效完成精确电压采集任务。文章还提供了常见问题调试技巧和性能优化建议,适用于需要高精度电压监测的嵌入式应用场景。
【100%通过率】华为OD机试真题 Python 实现【水库蓄水问题】【2022.11 Q4 新题】
给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。
带你深入了解Fragment懒加载
总之,Fragment懒加载是一种有效的性能优化技术,可以延迟加载和初始化Fragment的内容,提升应用性能和用户体验。Fragment嵌套:在使用嵌套Fragment时,需要考虑父Fragment和子Fragment之间的可见性传递和数据加载逻辑,确保懒加载的正确性。,懒加载可以避免预加载的Fragment一开始就加载数据,只有当用户真正切换到该Fragment时才进行加载,节省了时间和资源。数据缓存:如果已经加载过数据并且数据是静态的,可以考虑在首次加载后进行数据缓存,以避免重复加载和提升加载速度。
X书关键词协议搜索
【代码】X书关键词协议搜索。
Android ViewPager与Fragment开发实践指南
在移动应用开发中,页面滑动切换是提升用户体验的核心交互模式。ViewPager作为Android官方提供的滑动容器组件,通过PagerAdapter机制实现页面动态加载,与Fragment的模块化特性形成黄金组合。这种技术方案能有效管理UI资源,支持页面状态保存与懒加载优化,广泛应用于电商轮播图、新闻频道切换等高频场景。开发者需要重点关注Fragment生命周期管理、预加载机制调优等关键技术点,例如通过BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT参数控制内存占用,使用ViewP
大模型新闻摘要生成质量评估工具
大模型新闻摘要生成质量评估工具 关键词:大模型、新闻摘要、质量评估、自然语言处理、算法 摘要:本文将探讨大模型新闻摘要生成质量评估工具的设计与应用。首先介绍大模型新闻摘要生成的背景和问题,然后深入分析质量评估的难点和重要性,接着介绍大模型的
单片机:实现简单的时间片轮询调度(附完整源码)
单片机:实现简单的时间片轮询调度(附完整源码)
Android ViewPager 取消预加载
转载地址:http://06peng.com/archives/155 android 新引入的Fragment加入了Viewpager这样的一个组件。至于该控件的功能在这里就不说了。这篇文章主要解决fragment viewpager预加载的问题。 默认的viewpager是会预先加载下一个fragment的控件的,可以通过setOffscreenPageLimit(int limit
jdbc从入门到精通(全)
前言 Java语言连接数据库(Java DataBase Connectivity) 面向接口/抽象编程(降低程序的耦合度,提高程序的扩展力)类似多态机制
Android Fragment开发指南:从基础到高级实践
Fragment作为Android UI开发的核心组件,通过模块化设计实现了界面元素的灵活组合与复用。其生命周期管理与Activity深度绑定,开发者需要掌握onAttach到onDetach的完整流程才能避免常见问题。在工程实践中,Fragment事务和回退栈机制为动态界面管理提供了强大支持,而ViewModel和Fragment Result API则解决了组件间通信的难题。随着Navigation组件和Compose的普及,现代Android开发中的Fragment应用场景更加丰富,特别适合电商、新闻
Data-Structures-and-Algorithm-Analysis-in-Java.pdf
作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
ViewPager预加载机制
ViewPager加载图片控件: ViewPager会默认加载当前页和当前页的左右两页。 一开始当前页是下标0,所以一开始默认加载第0页(指下标,下同)和第1页。 当你向右滑动,当前页为第1页时,ViewPager会加载第2页,这时一共有3页存在(第0,1,2页)。 再向右滑动,当前页为第2页时,会移除第0页,加载第3页,同理向左滑动当前页为第1页时,会移除第3页。 所以我们可以
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
Android清空ViewPager缓存,Android ViewPager 取消预加载
android 新引入的Fragment加入了Viewpager这样的一个组件。至于该控件的功能在这里就不说了。这篇文章主要解决fragment viewpager预加载的问题。默认的viewpager是会预先加载下一个fragment的控件的,可以通过setOffscreenPageLimit(intlimit) 来设置要提前加载的fragment。即是说当limit等于5的时候,打开第一个f...
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
viewPager+Fragment踩过的坑
最近由于项目需求,需要做问卷调查功能,点击上一题和下一题可以切换题目,做完第二道题目需要发网络请求,第三题是根据第二题的选项显示不同的题目,首先我想到的技术路线是:viewPager+fragment,由此实现,在此记录一下踩过的坑。
1301



被折叠的 条评论
为什么被折叠?



