转载。

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. 【POJ1330】Nearest Common Ancestors(树链剖分求LCA)

    Description A rooted tree is a well-known data structure in computer science and engineering. An exa ...

  2. asp.net关于Cookie跨域(域名)的问题

    Cookie是一个伟大的发明,它允许Web开发者保留他们的用户的登录状态.但是当你的站点有一个以上的域名时就会出现问题了.在Cookie规范上 说,一个cookie只能用于一个域名,不能够发给其它的域 ...

  3. android和struts2实现android文件上传

    1.开发准备如下2个工具类 package org.lxh.util; import java.io.BufferedReader; import java.io.InputStreamReader; ...

  4. OpenWrt挂载USB储存设备实现Samba共享

    没有USB接口的路由器不是好路由器,有了USB接口OpenWrt才有更多的玩法,比如挂载U盘.移动硬盘等USB储存设备实现Samba共享,打造小型家庭服务器. 1.安装与USB相关的软件包: opkg ...

  5. C++11并发内存模型学习

    C++11标准已发布多年,编译器支持也逐渐完善,例如ms平台上从vc2008 tr1到vc2013.新标准对C++改进体现在三方面:1.语言特性(auto,右值,lambda,foreach):2.标 ...

  6. 【转】VMware 11安装Mac OS X 10.10 及安装Mac Vmware Tools.

    原文网址:http://www.cnblogs.com/Anand/p/4483727.html 先上一张效果图兴奋一下,博主穷屌丝一个,只能通过虚拟黑苹果体验下高富帅的生活,感觉超爽的,废话不多说的 ...

  7. rspec学习02

    元数据 RSpec-core存储元数据哈希每实例和组,其中包含他们的描述,声明的位置等等,这个hash控制很多RSpec核心的功能,包括输出格式化程序(访问描述和位置),和before,after钩子 ...

  8. ACM1228_STL的应用

    #include<iostream> #include<string> #include<map> using namespace std; map<stri ...

  9. [经典] Best Time to Buy and Sell Stock

    这一系列求最优值的问题变种挺多 1. Say you have an array for which the ith element is the price of a given stock on ...

  10. C# 模拟用户登录

    , data.Length);            newStream.Close();                               request.CookieContainer  ...