iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android仿今日头条多个fragment懒加载的实现
  • 556
分享到

Android仿今日头条多个fragment懒加载的实现

2023-05-30 16:05:55 556人浏览 独家记忆
摘要

前言最近有时间,所以我又双叒叕推新一篇文章了,fragment懒加载实现虽然是个小模块,但做过的人都有体会,通常并不会轻易就成功了的,让你辗转反侧,彻夜难眠,绵绵无绝期。我就按照今日头条的样式做了一个懒加载功能。文章到一半会解释大家可能遇到

前言

最近有时间,所以我又双叒叕推新一篇文章了,fragment懒加载实现虽然是个小模块,但做过的人都有体会,通常并不会轻易就成功了的,让你辗转反侧,彻夜难眠,绵绵无绝期。我就按照今日头条的样式做了一个懒加载功能。文章到一半会解释大家可能遇到的不加载数据了的坑,先不剧透。

Fragment的生命周期回顾

Android仿今日头条多个fragment懒加载的实现

GitHub代码直通车 (本地下载)

这里是今日头条效果:

Android仿今日头条多个fragment懒加载的实现

自制效果,有图有真相:

Android仿今日头条多个fragment懒加载的实现

实现思路:

使用Fragment类自带方法setUserVisibleHint()判断当前fragment是否对用户可见,根据回调的isVisibleToUser参数来进行相关的逻辑判断。重写该方法,创建变量isVisible拿到是否可见标志。

但是直接根据isVisible判断就加载数据,可能onCreateView()方法并未执行完毕,此时就会出现NullPointerException空指针异常。所以就需要满足控件初始化完成,用户可见,才能加载数据。

Android仿今日头条多个fragment懒加载的实现

LazyloadFragment懒加载fragment实现:

public abstract class LazyloadFragment extends Fragment { protected View rootView; private boolean isInitView = false; private boolean isVisible = false; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {  rootView = inflater.inflate(setContentView(), container, false);  init();  isInitView = true;  isCanLoadData();  return rootView; } @Override public void setUserVisibleHint(boolean isVisibleToUser) {  super.setUserVisibleHint(isVisibleToUser);  //isVisibleToUser这个boolean值表示:该Fragment的UI 用户是否可见,获取该标志记录下来  if(isVisibleToUser){   isVisible = true;   isCanLoadData();  }else{   isVisible = false;  } } private void isCanLoadData(){  //所以条件是view初始化完成并且对用户可见  if(isInitView && isVisible ){   lazyLoad();   //防止重复加载数据   isInitView = false;   isVisible = false;  } }  protected abstract int setContentView();  protected abstract void init();  protected abstract void lazyLoad();}

--结束END--

本文标题: Android仿今日头条多个fragment懒加载的实现

本文链接: https://www.lsjlt.com/news/219884.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android仿今日头条多个fragment懒加载的实现
    前言最近有时间,所以我又双叒叕推新一篇文章了,fragment懒加载实现虽然是个小模块,但做过的人都有体会,通常并不会轻易就成功了的,让你辗转反侧,彻夜难眠,绵绵无绝期。我就按照今日头条的样式做了一个懒加载功能。文章到一半会解释大家可能遇到...
    99+
    2023-05-30
  • android fragment懒加载如何实现
    Android Fragment的懒加载可以通过以下步骤实现:1. 在Fragment类中添加一个boolean类型的变量isLoa...
    99+
    2023-08-26
    android fragment
  • Android实现仿今日头条点赞动画效果实例
    目录一、前言二、需求拆分三、实现方案1、点赞控件触摸事件处理2、点赞动画的实现2.1、点赞效果图片的获取和存储管理2.2、点赞表情图标动画实现2.3、点赞次数和点赞文案的绘制3、存放...
    99+
    2024-04-02
  • Android之Viewpager+Fragment实现懒加载示例
    我们在做应用开发的时候,一个Activity里面可能会以viewpager(或其他容器)与多个Fragment来组合使用。而ViewPager默认会缓存三页数据,即:Viewpager每加载一个Fragment,都会预先加载此Fragmen...
    99+
    2023-05-31
    viewpager fragment age
  • Android Studio初学者实例:RecyclerView学习--模仿今日头条
    本案例来自于学校的一个简单的课程实验 先看效果图,可以显然的看到,一些item是不同的布局,而其他布局就是简单的布局嵌套 看一下xml代码: ...
    99+
    2023-10-21
    android studio 学习 android
  • Android如何实现仿微信Viewpager-Fragment惰性加载
    这篇文章将为大家详细讲解有关Android如何实现仿微信Viewpager-Fragment惰性加载,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果如图:什么是lazy-loading呢?顾名思义就是在...
    99+
    2023-05-30
    android
  • Android如何仿今日头条评论时键盘自动弹出的效果
    这篇文章主要介绍Android如何仿今日头条评论时键盘自动弹出的效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果图:对这个对话框设置一个style效果:<style name="inp...
    99+
    2023-05-31
    android
  • Android XRecyclerView实现多条目加载
    本文实例为大家分享了Android实现多条目加载展示的具体代码,供大家参考,具体内容如下展示效果这里写图片描述依赖testCompile 'junit:junit:4.12' compile 'com.hjm:BottomTabBar:1....
    99+
    2023-05-30
    android xrecyclerview 加载
  • Android中怎么利用RecyclerView实现今日头条频道管理功能
    这篇文章将为大家详细讲解有关Android中怎么利用RecyclerView实现今日头条频道管理功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。实现思路:通过ItemTouchHelper...
    99+
    2023-05-30
    android recyclerview
  • Android实现简单的加载进度条
    本文实例为大家分享了Android实现简单的加载进度条的具体代码,供大家参考,具体内容如下 1.效果图 2.自定义progressBar package com.example...
    99+
    2024-04-02
  • vue实现一个懒加载的树状表格实例
    目录一个懒加载的树状表格实例安装模板js代码 使用el-table懒加载树形表格时的注意点1、版本问题2、数据显示3、滚动条4、数据结构5、el-table的fixed导致...
    99+
    2024-04-02
  • vue如何实现一个懒加载的树状表格
    这篇文章主要介绍“vue如何实现一个懒加载的树状表格”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue如何实现一个懒加载的树状表格”文章能帮助大家解决问题。一个懒加载的树状表格实例实现一个树状表格...
    99+
    2023-06-30
  • Android如何实现简单的加载进度条
    这篇文章将为大家详细讲解有关Android如何实现简单的加载进度条,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Android是什么Android是一种基于Linux内核的自由及开放源代码的操作系统,主要...
    99+
    2023-06-14
  • java spring+mybatis整合如何实现今日头条搞笑动态图片的爬取
    java spring+mybatis整合如何实现今日头条搞笑动态图片的爬取,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java spring+mybatis整合实现爬虫之今...
    99+
    2023-06-19
  • 怎么在Android中实现一个仿微软系统加载动画效果
    怎么在Android中实现一个仿微软系统加载动画效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现步骤:初始化五个圆球分别设置中心点,方便画圆利用ValueAnimat...
    99+
    2023-06-14
  • Android开发实现ImageView加载摄像头拍摄的大图功能
    本文实例讲述了Android开发实现ImageView加载摄像头拍摄的大图功能。分享给大家供大家参考,具体如下:这个方法是从官方demo中摘录的,在此记录学习。权限<uses-permission android:name="andr...
    99+
    2023-05-30
    android imageview age
  • Android自定义View实现圆形加载进度条效果的方法
    这篇文章将为大家详细讲解有关Android自定义View实现圆形加载进度条效果的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。View仿华为圆形加载进度条效果图实现思路可以看出该View可分为三个部分...
    99+
    2023-05-30
    android view 进度条
  • 在Android项目中使用RecyclerView实现一个上拉加载更多功能
    在Android项目中使用RecyclerView实现一个上拉加载更多功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。既然有刷新的时候有两种状态就要定义两个状...
    99+
    2023-05-31
    android recyclerview recycle
  • Android 使用RecycleView列表实现加载更多的示例代码
    目录1.界面布局2.功能实现 1.界面布局 <?xml version="1.0" encoding="utf-8"?> <FrameLayou...
    99+
    2024-04-02
  • 如何使用JS+CSS实现一个简单加载进度条的效果
    这篇文章主要讲解了“如何使用JS+CSS实现一个简单加载进度条的效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用JS+CSS实现一个简单加载进度条的效果”吧!一、前言我们经常在网页...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作