转载。

DynamicBox是一个Android库,能够inflates自定义布局来指示出:

  • 正在加载内容
  • 显示一个异常
  • 或者是一个自定义视图
 
 
文件名:dynamicbox-master
简单说明:
支持(可以替换加载中的控件~):

  • ListView
  • GridView
  • ExpandableListView
  • Activity
  • FragmentActivity
  • Fragment
  • LinearLayout
  • RelativeLayout
  • ScrollView

示例 (控件和布局的布局文件或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 ...");
 
 
 
 
自己使用的方法:
 
因为是自己新建的项目来复制黏贴的,然后引用包到自己项目的时候报错了
 
因为android-support-v4自己项目和引用的项目都有,所以重复了,这样以后自己新建拷贝的项目用来引用应该会常出现这个问题~
删除掉新建的包项目,重新引用,就没报错了~
 
 
 
整个界面的初始化和等待:
Activity初始化的时候就可以设置对应的值

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的更多相关文章

  1. 漂亮的Android加载中动画:AVLoadingIndicatorView

    AVLoadingIndicatorView 包含一组漂亮的Android加载中动画. IOS版本:here. 示例 Download Apk 用法 步骤1 Add dependencies in b ...

  2. 【转载】一行代码加载网络图片到ImageView——Android Picasso

    原文链接:一句代码加载网络图片到ImageView——Android Picasso  注意:此处使用下面代码需要先配置一下gradle,下载所需包. 具体操作如下图: compile 'com.sq ...

  3. Navicat操作数据库时一直显示加载中

    用Navicat for mysql操作mysql数据库,其中一个表怎么也打不开,一直加载,还不能关闭.从网上搜索原因,主要是以下几个原因:原因一:表死锁,会出现这样的情况,锁不释放,无论多久都读取不 ...

  4. 使用Bootstrap3和Ladda UI实现的多种按钮“加载中”效果体验

    在线演示 在线演示 大家在开发基于web的网站或者web应用中,常常在AJAX调用的过程中需要提示用户并且展示相关的“加载中”效果,类似的UI设计也非常多,比如,当点击一个按钮后,在它的旁边显示一个 ...

  5. adnroid 自定义ProgressDialog加载中

    用来记录自己所用到的知识 前两天在做项目的时候发现有时候在访问网络数据的时候由于后台要做的工作较多,给我们返回数据的时间较长,所以老大叫我加了一个加载中的logo图用来提高用户体验. 于是就在网上找了 ...

  6. css3动画-加载中...

    写几个简单的加载中动画吧. 像前面三种都是相当于几个不同的点轮流来播放同一动画:变大变小.css3里面有一个用于尺度变换的方法:scale(x,y):定义 2D 缩放转换,改变元素的宽度和高度. 第四 ...

  7. WebView 一直展示加载中。。。

    webview加载html5页面总是一直在加载中,加载很慢或干脆加载不出来, 听浏览器的大牛说可能是 js导致的,尝试在onpause里加入mWebView.pauseTimers(), onResu ...

  8. JQuery插件:遮罩+数据加载中。。。(特点:遮你想遮,罩你想罩)

    在很多项目中都会涉及到数据加载.数据加载有时可能会是2-3秒,为了给一个友好的提示,一般都会给一个[数据加载中...]的提示.今天就做了一个这样的提示框. 先去jQuery官网看看怎么写jQuery插 ...

  9. jquery mobile 请求数据方法执行时显示加载中提示框

    在jquery mobile开发中,经常需要调用ajax方法,异步获取数据,如果异步获取数据方法由于网速等等的原因,会有一个反应时间,如果能在点击按钮后数据处理期间,给一个正在加载的提示,客户体验会更 ...

随机推荐

  1. DIV焦点事件

    div本来是没有focus和blur事件的. 如果用div来模拟一个input标签,同时需要它和input一样响应focus和blur事件, 就需要给他加上attribute:tabindex An ...

  2. php的ob实现页面静态化

    php页面静态化的原理,用最少的代码解释页面静态化 如何应用:在插入或更新数据到数据库时,就执行一下代码是一种比较好的方法.比如:php执行add()方法时(就是插入数据时) //开启缓存 Ob_st ...

  3. 重构第四天 : 用多态替换条件语句(if else & switch)

    面相对象的一个核心基础就是多态,当你要根据对象类型的不同要做不同的操作的时候,一个好的办法就是采用多态,把算法封装到子类当中去. 重构前代码: public abstract class Custom ...

  4. poj 2151

      http://poj.org/problem?id=2151                                                               Check ...

  5. vijosP1046 观光旅游(最小环)

    vijosP1046 观光旅游 链接:https://vijos.org/p/1046 [思路] Floyd求解最小环. [代码] #include<iostream> using nam ...

  6. [转载+整理]JVM性能调优----JVM架构

    JVM的总体结构参考如下两图:

  7. 最短路--Dijkstra算法 --HDU1790

    //Dijkstra #include<iostream> #include<cstdio> #include<cstdlib> #include<cstri ...

  8. dijkstra算法(迪杰斯特拉算法)

    dijkstra算法(迪杰斯特拉算法) 用途:有向图最短路径问题 定义:迪杰斯特拉算法是典型的算法,一般的表述通常有两种方式,这里均采用永久和临时标号的方式,该算法要求图中不存在负权边 用永久和临时标 ...

  9. Javascript触屏手势库-JTouch(更新V1.1)

    作者:痞子|时间:2013-05-21|分类目录:js,javascript,jquery教程|Tag标签: javascript.jTouch|阅读(857) 7 条评论 Javascript触屏手 ...

  10. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(34)-文章发布系统①-简要分析 系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET ...