实现正在加载中界面的Android库:DynamicBox
DynamicBox是一个Android库,能够inflates自定义布局来指示出:
- 正在加载内容
- 显示一个异常
- 或者是一个自定义视图
ListViewGridViewExpandableListViewActivityFragmentActivityFragmentLinearLayoutRelativeLayoutScrollView
示例 (控件和布局的布局文件或ID赋值方式)
- View
ListView lv = (ListView)findViewById(R.id.listView); DynamicBox box = new DynamicBox(this,lv);
- Layout id
DynamicBox box = new DynamicBox(this,R.layout.activity_activity);
To Show the loading View
box.showLoadingLayout(); //显示加载视图
To Show Internet off View
box.showInternetOffLayout();
To Show Exception View
box.showExceptionLayout();//显示如果没有加载到时的界面
To Show a Custom View
View customView = getLayoutInflater().inflate(R.layout.custom_view, null, false);
box.addCustomView(customView,"greenmonster"); box.showCustomView("greenmonster");
**To set Loading Message **
box.setLoadingMessage("Loading your music ...");
DynamicBox box ;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
pojo = new HouseConditionsPojo(); box = new DynamicBox(this,R.layout.house_jj_list_activity); box.setLoadingMessage("Loading content...");
box.setOtherExceptionTitle("Error");
box.setOtherExceptionMessage("An error has occurred while fetching data, please try again ...");
box.setClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ini(); // 访问网络,成功的时候初始化控件
}
});
ini();
}
private void ini() {
box.showLoadingLayout(); //显示加载中的画面
AsyncHttpClientTool.SearchJJHouses(pojo, new AsyncReturn() {
@Override
public void onSuccess(String arg0) {
box.hideAll(); // 关闭加载中动画
try {
init(); //注册控件 控件赋值的呢过
} catch (Exception e) {
e.printStackTrace();
}
super.onSuccess(arg0);
}
@Override
public void onFailure(Throwable arg0) {
box.showExceptionLayout(); //调用访问失败的界面
super.onFailure(arg0);
}
});
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview); //加载布局文件
ListView lv = (ListView)findViewById(R.id.listView); //布局中用来替换的控件
// Setup by Box
box = new DynamicBox(this,lv); // or new DynamicBox(this,R.id.listView)
box.setLoadingMessage("Loading your music ...");
//自定义控件用来替换布局中的替换控件
View emptyCollectionView = getLayoutInflater().inflate(R.layout.activity_listview, null, false);
box.addCustomView(emptyCollectionView,"music_not_found");
box.setClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "Retry button clicked :)", Toast.LENGTH_SHORT).show();
}
});
box.showLoadingLayout();
new Handler().postDelayed(new Runnable() {
public void run() {
// box.showCustomView("music_not_found"); //当数据获取成功时,展示正确的界面
box.showExceptionLayout();//当数据获取失败时,显示加载失败的界面
}
}, 2000);
}
实现正在加载中界面的Android库:DynamicBox的更多相关文章
- 漂亮的Android加载中动画:AVLoadingIndicatorView
AVLoadingIndicatorView 包含一组漂亮的Android加载中动画. IOS版本:here. 示例 Download Apk 用法 步骤1 Add dependencies in b ...
- 【转载】一行代码加载网络图片到ImageView——Android Picasso
原文链接:一句代码加载网络图片到ImageView——Android Picasso 注意:此处使用下面代码需要先配置一下gradle,下载所需包. 具体操作如下图: compile 'com.sq ...
- Navicat操作数据库时一直显示加载中
用Navicat for mysql操作mysql数据库,其中一个表怎么也打不开,一直加载,还不能关闭.从网上搜索原因,主要是以下几个原因:原因一:表死锁,会出现这样的情况,锁不释放,无论多久都读取不 ...
- 使用Bootstrap3和Ladda UI实现的多种按钮“加载中”效果体验
在线演示 在线演示 大家在开发基于web的网站或者web应用中,常常在AJAX调用的过程中需要提示用户并且展示相关的“加载中”效果,类似的UI设计也非常多,比如,当点击一个按钮后,在它的旁边显示一个 ...
- adnroid 自定义ProgressDialog加载中
用来记录自己所用到的知识 前两天在做项目的时候发现有时候在访问网络数据的时候由于后台要做的工作较多,给我们返回数据的时间较长,所以老大叫我加了一个加载中的logo图用来提高用户体验. 于是就在网上找了 ...
- css3动画-加载中...
写几个简单的加载中动画吧. 像前面三种都是相当于几个不同的点轮流来播放同一动画:变大变小.css3里面有一个用于尺度变换的方法:scale(x,y):定义 2D 缩放转换,改变元素的宽度和高度. 第四 ...
- WebView 一直展示加载中。。。
webview加载html5页面总是一直在加载中,加载很慢或干脆加载不出来, 听浏览器的大牛说可能是 js导致的,尝试在onpause里加入mWebView.pauseTimers(), onResu ...
- JQuery插件:遮罩+数据加载中。。。(特点:遮你想遮,罩你想罩)
在很多项目中都会涉及到数据加载.数据加载有时可能会是2-3秒,为了给一个友好的提示,一般都会给一个[数据加载中...]的提示.今天就做了一个这样的提示框. 先去jQuery官网看看怎么写jQuery插 ...
- jquery mobile 请求数据方法执行时显示加载中提示框
在jquery mobile开发中,经常需要调用ajax方法,异步获取数据,如果异步获取数据方法由于网速等等的原因,会有一个反应时间,如果能在点击按钮后数据处理期间,给一个正在加载的提示,客户体验会更 ...
随机推荐
- Energy Minimization
zoj2539:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2539 题意:公式第一项只要当xi=0时才会有作用,第二项只 ...
- Musical Theme
poj1743:http://poj.org/problem?id=1743 题意:题意抽象出来就是给你一个序列,然后找一个长度不少于5的没有重复的等差数列. 题解:每相邻的两个数做差,然后转化成求字 ...
- 【转】不同VLAN之间相互通信及VTP、STP、EtherChannel概念
厘清最后一个概念. 转了网上两个相关帖子: http://www.net130.com/CMS/Pub/Tech/tech_zh/2009_03_12_97386_3.htm http://blog. ...
- jQuery EasyUI parser 的使用场景
转自原文地址:http://www.easyui.info/archives/216.html parser,故名意思,就是解析器的意思,别看他只有那么几行代码,jQuery Easyui 能够根据c ...
- [LeetCode#261] Graph Valid Tree
Problem: Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair o ...
- WordPress Xhanch - My Twitter插件跨站请求伪造漏洞(CVE-2013-3253)
漏洞版本: WordPress Xhanch - My Twitter Plugin 2.7.5 漏洞描述: Bugtraq ID:61629 CVE ID:CVE-2013-3253 WordPre ...
- 1047 - Neighbor House(简单线性DP)
题目大意: 给你n个房子,要求把房子染成R,G,B三种的一种颜色, 要求相邻的颜色不能一样. dp[第i个房子][第j种颜色] 转移一下就行了. #include<cstdio&g ...
- Ubuntu系统下为IDEA创建启动图标
默认情况下,ubuntu将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,需要在该目录下创建一个名为“idea.desktop”的文件. ...
- iOS中懒加载
1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 ...
- macbook pro install ubuntu
https://help.ubuntu.com/community/MacBookPro Determine your hardware revision To determine which ver ...