使用Dialog实现全局Loading加载框
Dialog实现全局Loading加载框
很多人在实现Loading加载框的时候,都是在当前的页面隐藏一个Loading布局,需要加载的时候,显示出来,加载完再隐藏
使用Dialog实现Loading框可以实现低耦合。
效果图
自定义Loading类
package ……;
import ……;
/**
* Created by kongqw on 2015/12/3.
*/
public abstract class Loading extends Dialog {
public abstract void cancle();
public Loading(Context context) {
super(context, R.style.Loading);
// 加载布局
setContentView(R.layout.view_loading);
// 设置Dialog参数
Window window = getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.gravity = Gravity.CENTER;
window.setAttributes(params);
}
// TODO 封装Dialog消失的回调
@Override
public void onBackPressed() {
// 回调
cancle();
// 关闭Loading
dismiss();
}
}
给自定义的Dialog添加自定义属性
在values文件夹下styles.xml里添加属性
<resources>
……
<style name="Loading" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
<!-- 设置背景色 透明-->
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 设置是否显示背景 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 设置背景透明度 -->
<item name="android:backgroundDimAmount">0.6</item>
<!-- 设置点击空白不消失 -->
<item name="android:windowCloseOnTouchOutside">false</item>
</style>
</resources>
Loading布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#88888888"
android:gravity="center"
android:textColor="#FFFF0000"
android:padding="10dp"
android:text="Loading" />
</RelativeLayout>
使用
初始化
cancle()是按返回键,Loading框关闭的回调,可以做取消加载请求的操作。
// 添加Loading
Loading mLoading = new Loading(this) {
@Override
public void cancle() {
}
};
显示Loading框
// 显示Loading
mLoading.show();
关闭Loading框
// 关闭Loading
mLoading.dismiss();
使用Dialog实现全局Loading加载框的更多相关文章
- vue+elementUI+axios实现的全局loading加载动画
在项目中,很多时候都需要loading加载动画来缓解用户的焦虑等待,比如说,我打开了一个页面,而这个页面有很多接口请求,但浏览器的请求并发数就那么几个,再加上如果网速不行的话,那么这时候,用户很可能就 ...
- vue-element-admin 全局loading加载等待
最近遇到需求: 全局加载loading,所有接口都要可以手动控制是否展示加载等待的功能 当拿到这个需求的时候我是拒绝的,因为我以及局部写好了0.0,这是要大改呀....,没办法老板的要求,只能硬着头皮 ...
- js+css实现全局loading加载
js var Mask = function() { //定义一个Mask对象 this.btn = ["取消", "确定"], this.init = fun ...
- Ajax全局加载框(Loading效果)的配置
在Ajax进行后台数据请求的过程中,我们有时候会希望用户能知道页面后台还在做一些事情,这时候就需要给用户一个非常明确的提示,也就是我们所谓的进度条 废话完成~ 实现原理: Jquery可以对ajax进 ...
- 加载框(loading)
一般在用户提交数据或者新加载页面时,请求服务器的过程,页面没有响应,但是用户并不知道,此时在发生什么.这时,就需要loading框给用户提示,增加用户体验. 1.引入loading.css. html ...
- vue2 自定义全局组件(Loading加载效果)
vue2 自定义全局组件(Loading加载效果) github地址: https://github.com/ccyinghua/custom-global-component 一.构建项目 vue ...
- 一个mui扩展插件mui.showLoading加载框【转】
转:http://ask.dcloud.net.cn/article/12856 写在前面:好像mui目前dialog系列唯独缺少showLoading加载框(加载中)组件,为了统一组件样式和体验,写 ...
- Android--自定义加载框
1,在网上看了下好看的加载框,看了一下,挺好看的,再看了下源码,就是纯paint画出来的,再加上属性动画就搞定了 再来看一下我们的源码 LvGhost.java package com.qianmo. ...
- loading加载和layer.js
layer.js中的loading加载 l本篇主要介绍layerjs中的loading加载在实际项目中的应用 1.使用的技术 前端:HTML5+CSS3+JS+layer.js 后端:.net 2.遇 ...
随机推荐
- 处处留心皆学问——由“display:inline-block;”导致的间距引发的思考。
昨天在做一个demo时遇到了一个问题:我有五个li需要并排排列,然后自然而然的我给它们设了display:inline-block;但是,过了很久之后发现,除了我写的样式外,它默认有一个间距,我们都不 ...
- Words to Use Instead of "Very"
- Codeforces 700E. Cool Slogans
Description 给定一个串 \(S\),求一个序列 \(a_i\),满足 \(a_i\) 是原串的子串,且 \(a_i\) 在 \(a_{i-1}\) 中至少出现两次,求这个序列的最大的长度 ...
- 【CODEVS 6384 大米兔学全排列】
·大米兔学习全排列,还有一些逆序对,还有一棵二叉索引树.· ·分析: 首先肯定不是像题目上说的那样,使用next_permutation去完成这道题,因为就算是线性的它也不能承受庞大的排列 ...
- hdu 5583 Kingdom of Black and White
Kingdom of Black and White Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
- 【NOIP2013货车运输】
描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多 ...
- 运行C++程序是出现错误:cannot open Debug/1.exe for writing
今天,打开VC6.0环境编了个小程序,谁知给我报了“cannot open Debug/1.exe for writing”这样一个错,然后,我就纳闷了,这是什么错丫? 想了半天,后想通,为什么会这样 ...
- shell基本命令
linux基本命令和shell基本命令,好多人傻傻分不清. linux基本命令积累如下: pwd:显示当前工作目录 cd:改变当前目录 ls:显示当前目录中所有目录文件和文本文件 ls -F:显示当前 ...
- C语言程序设计第一次作业(2017.10.10完成)
一:程序框图以及正确运行结果: (1)给出圆半径,得出圆面积: ①程序框图如下: ②测试图如下: 经过测试 ,输入半径2能得出正确结果.多次测试,输入不同值,均得出正确结果,证明稳定性. ③实验分析: ...
- JS 判断是否为IP格式
<html> <head> <title><a href='http://js.zz5u.net'><u>JavaScript</u& ...