网络加载空页面

空页面的显示很常用,所以自己做了一个通用的空页面显示,先看效果图

 

在有网络的时候正常加载显示,在没有网络的时候自动加载空页面,点击空页面重新加载网络请求的一个功能

1:定义一个xml页面,页面布局是一个iamgeview和一个textview的显示

2:添加辅助类,控制加载空页面和显示隐藏等逻辑

3:在网络回调的时候调用方法显示以及在退出的时候清空缓存

下面是代码

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/root"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><ImageViewandroid:id="@+id/img_icon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:src="@mipmap/empty" /><TextViewandroid:id="@+id/tv_val"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal"android:layout_marginTop="@dimen/d51.0"android:text="网络开小差了,点击屏幕重试"android:textSize="@dimen/d43.0" />
</LinearLayout>
View Code
package com.fragmentapp.helper;import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;import com.fragmentapp.R;/*** Created by liuzhen on 2017/12/28.*/public class EmptyLayout {private Context context;private FrameLayout root;private TextView tv_val;private CallBack callBack;public EmptyLayout(Context context){this.context = context;LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);params.gravity = Gravity.CENTER;root = new FrameLayout(context);root.setLayoutParams(params);View view = LayoutInflater.from(context).inflate(R.layout.layout_error,null);tv_val = view.findViewById(R.id.tv_val);root.addView(view);}public void showEmpty(final ViewGroup group, String val){tv_val.setText(val);group.removeView(root);group.addView(root,root.getLayoutParams());status(group,true);root.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {if (callBack != null)callBack.click();status(group,false);}});}private void status(ViewGroup group,boolean isShow){if (isShow){for (int i = 0;i < group.getChildCount();i++) {View view = group.getChildAt(i);view.setVisibility(View.GONE);}root.setVisibility(View.VISIBLE);//放在后面才能生效}else{for (int i = 0;i < group.getChildCount();i++) {View view = group.getChildAt(i);view.setVisibility(View.VISIBLE);}root.setVisibility(View.GONE);}}public void setCallBack(CallBack callBack){if (this.callBack == null)this.callBack = callBack;}public void clear(){context = null;root.removeAllViews();root = null;callBack = null;}public interface CallBack{void click();}}
View Code

这里有几个注意的地方特别讲解一下,就是空页面的初始化和退出时候的一个调用

空页面的初始化和退出因为是必须的一个操作,所以放在了base里面去控制

visible方法是上篇文章里说的懒加载,页面只会加载一次,而空页面也是一样,让它只在初始化的时候创建一个对象

然后是退出时候调用

就是清除了我们的资源,释放内存

接下来就是在网络请求错误的地方调用我们的方法就行了

网络错误空页面将显示,点击空页面重新调用加载方法,如果在次网络错误,则在次调用显示我们的空页面

这样就把多余的逻辑控制都封装在辅助类里面了,而实际上我们需要考虑手动调用的就只有一行代码而已,其它的都不需要去考虑

 

上面两种效果都一样,直接指定一个root容器,或者直接getView获取root,直接获取就不用自己去单独设置id了

欢迎反馈意见,欢迎收藏^_^

 GitHub:https://github.com/1024477951/FragmentApp

转载于:https://www.cnblogs.com/LiuZhen/p/8143411.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel有的单元文字可以超出单元格_excel单元格斜线

excel表格的强大功能&#xff0c;给办公带来了很多便捷&#xff0c;但是有很多强大的功能&#xff0c;其实我们都还不会用&#xff0c;如在做报表时&#xff0c;要用到给单元格加两条斜线&#xff0c;三条斜线时&#xff0c;有时就不知道怎么弄&#xff0c;两条或许会&#xff…

百度地图发布专网地图时空数据托管平台,构建智慧城市数字底盘

来源&#xff1a;百度地图“新基建”浪潮下&#xff0c;智慧城市的建设和发展进一步提速&#xff0c;作为智慧城市数字基础设施的地理信息系统&#xff0c;其数据体量也极大增长&#xff0c;对海量GIS数据集成、存储、管理、计算、表达、分析和应用等有关技术的创新发展提出了急…

word取消空格显示为点

其实就是编辑标记的隐藏与显示问题 看这里 这就是“显示/隐藏编辑标记”按钮&#xff0c;加深颜色时就会和我的文章一样有点点&#xff0c;再点击一下就好啦。

cad细等线体不显示_CAD图纸乱码、钢筋符号不显示解决办法(内含万能字体)

好课推荐&#xff1a;零基础CAD&#xff1a;点我CAD室内&#xff1a;点我 周站长CAD&#xff1a;点我CAD机械&#xff1a;点我 Bim教程&#xff1a;点我CAD建筑&#xff1a;点我CAD三维&#xff1a;点我全屋定制&#xff1a;点我 ps教程&#xff1a;点我苹果版CAD:点我 3dmax教…

长达1500年之久的争论:意识是连续的还是离散的?心理物理学家给出了新的回答...

来源&#xff1a;brainnews两种主要理论推动了由Saint Augustine发起的长达1500年之久的争论&#xff1a;意识是连续的&#xff08;即我们在每一个时间点都有意识&#xff09;&#xff0c;还是离散的&#xff08;即我们只在特定的时刻有意识&#xff09;&#xff1f; 9月3日发表…

kind富文本编辑器_在VueJs中集成UEditor 富文本编辑器

来源 | http://www.mshady.com/archives/378在vue的项目中遇到了需要使用富文本编辑器的需求&#xff0c;在github上看了很多vue封装的editor插件&#xff0c;很多对图片上传和视频上传的支持并不是很好&#xff0c;最终还是决定使用UEditor。这类的文章网上有很多&#xff0c;…

彭博社 : 中国稀土——美欧的苦恼

文章来源&#xff1a;彭博社作者&#xff1a;Joe Deaux图片、视频来源&#xff1a;网络编辑&#xff1a;江上波对于那些用于电动汽车、风力涡轮机等领域的稀有原材料&#xff0c;美国和欧洲提高产量、降低对中国依赖性的雄心壮志将面临很多障碍&#xff0c;包括更高的成本和环境…

反射应用二:利用反射加配置文件实现多数据库的访问

在上一篇文章中讲解了什么是反射&#xff0c;以及利用反射可以获取程序集里面的哪些内容。在平时的项目中&#xff0c;可能会遇到项目需要使用多种数据库&#xff0c;这篇文章中将会讲解如何利用反射实现访问多种数据库。 项目整体结构如下图所示&#xff1a; 1、Database.Inst…

2020未来科学大奖获奖名单揭晓

来源&#xff1a;高分子科技9月6日上午&#xff0c;2020 年未来科学大奖重磅揭晓&#xff0c;三大奖项获奖者分别为&#xff1a;未来科学大奖生命科学奖获奖者&#xff1a;张亭栋、王振义未来科学大奖物质科学奖获奖者&#xff1a;卢柯未来科学大奖数学与计算机科学奖获奖者&am…

与40mhz信道不兼容设置_物理信道发射功率

先上图与HSDPA有关的三个物理信道HS_SICH(TS2),HS_PDSCH(TS3,4,5),HS_SCCH(TS6).&#xff11;、 PCCPCH_power:PCCPCH承载BCH&#xff0c;为TS0时隙码道1和码道2的功率之和&#xff0c;以固定功率发射&#xff0c;一般设为30dBm。根据具体无线环境&#xff0c;可以优化设置…

带父节点的平衡二叉树_深入理解(二叉树、平衡二叉树、B-Tree、B+Tree )的区别

一、背景一般说MySQL的索引&#xff0c;都清楚其索引主要以B树为主&#xff0c;此外还有Hash、RTree、FullText。本文简要说明一下MySQL的BTree索引&#xff0c;以及和其相关的二叉树、平衡二叉树、B-Tree&#xff0c;相关的知识网上很多&#xff0c;为了方便自己更快、清楚的了…

2020年中国新基建人工智能产业链全景图深度分析汇总(附完整企业名单)

来源&#xff1a;北京物联网智能技术应用协会“新基建”是与传统基建相对应&#xff0c;结合新一轮科技革命和产业变革特征&#xff0c;面向国家战略需求&#xff0c;为经济社会的创新、协调、绿色、开放、共享发展提供底层支撑的具有乘数效应的战略性、网络型基础设施。其中“…

Word设置子标题跟随上级标题变化

1 先看看结果吧&#xff0c;结果可实现子标题跟随上级标题变动 2 设置各级标题 2.1 对于1级标题-“标题1”&#xff0c;修改标题样式样式基准&#xff1a;“正文”格式&#xff1a;段落&#xff1a;大纲级别&#xff1a;1级2.2 对于2级标题-“标题2”&#xff0c;修改标题样…

2压缩备份数据库_MySQL数据库备份

前端监控&#xff1a;www.webfunny.cn &#xff1b;只需要简单几步&#xff0c;就可以搭建一套属于自己的前端监控系统&#xff0c;快来试试吧。(github&#xff1a;webfunny_monitor)一、mysqldump 简介mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 …

人工智能和物联网:智慧城市的交通管理

来源&#xff1a;帮尼资讯当今的智慧城市由不断重塑城市地区的先进技术提供发展驱动力。人工智能和物联网对于世界的运作越来越不可或缺。基于云的服务、物联网、分析平台和许多AI工具正在改变城市居民与环境互动和在环境中出行的方式。纽约市AI咨询和开发机构Blue Orange Digi…

Linux 计划任务

1.计划任务&#xff1a;at一次性计划任务。 &#xff08;1&#xff09;/etc/init.d/atd status   #查看at命令是否开启。 &#xff08;2&#xff09;yum -y install at     #安装at命令 命令&#xff1a; # 一次性计划任务。命令&#xff1a;at 09:14 /回车    at&g…

李德毅院士:基于驾驶脑的智能驾驶车辆硬件平台架构

来源&#xff1a;中国工程院院刊转自&#xff1a;智车科技导 读&#xff1a; 智能驾驶车辆试验平台是人工智能科学、认知科学、控制科学等多个学科领域的最新理论与实践的成果&#xff0c;也是研究智能驾驶理论与技术的基础。不同智能驾驶试验平台的传感器型号、数量、安装位置…

jdk+Tomcat环境搭建

jdk安装与环境变量配置测试Java是否安装好&#xff0c;可以利用cmd命令提示符进行测试。在界面中输入Java&#xff0c;然后回车&#xff1b;得到下图所示的内容&#xff0c;说明安装成功了&#xff0c;可以进行环境变量配置了。进行环境变量配置&#xff0c;首先新建环境变量&a…

有关博弈人机混合智能的再思考

来源&#xff1a;人机与认知实验室【博弈智能研究是一个领域&#xff0c;不是一个学科&#xff0c;我们必须要用不同的方法论&#xff0c;从不同的角度来研究游戏&#xff0c;方法论、角度越多&#xff0c;博弈智能研究就会做得越好。】博弈智能是一种涉及感性&#xff08;尤其…

邬贺铨:工业互联网的网络技术

来源&#xff1a;工业互联网产业联盟在2020工业互联网大会开幕式上&#xff0c;中国工程院院士邬贺铨发表题为《工业互联网的网络技术》的主旨演讲&#xff0c;从工业互联网物理层技术、链路层技术、网络层技术三个方面&#xff0c;对现有通信网络如何满足工业互联网高速发展要…