通过viewSwitch实现加载进度条到内容显示的转场处理
来源:互联网 发布:电信网络接入点那个快 编辑:程序博客网 时间:2024/04/28 09:45
想象一个情景:我打开一个activity,然后通过网络请求请求服务器数据,在数据未加载成功之前,为了不让界面显示空白,有时候我们会在界面添加一个加载对话框或是嵌入页面的加载进度条。如果遇到网络请求失败,我们还要显示一个网络连接失败界面提醒用户检查网络连接状态。或是加载成功后服务器没有没有相应的数据,我们则会显示一个“数据为空”来提醒用户...
这些看似与我们显示无关的内容:加载进度条,网络连接失败提醒,数据为空界面。我们都必须得手动的添加到每个activity中,这个重复的代码你会愿意这个干吗?
所以我有一个好的主意:按照上面的逻辑是我们把各种逻辑界面添加到们要显示的activity的内容,现在我们换一个位置,我们把每个activity界面显示内容添加到一个里面包含了各种的逻辑处理界面。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <include layout="@layout/include_title" /> <ViewSwitcher android:id="@+id/profileSwitcher" android:layout_width="fill_parent" android:layout_height="fill_parent" android:inAnimation="@android:anim/slide_in_left" android:outAnimation="@android:anim/slide_out_right" > <include android:id="@+id/include_progress_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" layout="@layout/include_progress" /> <LinearLayout android:id="@+id/include_content" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" android:orientation="vertical" /> </ViewSwitcher></LinearLayout>
这是我们可以通过ViewStub或include导入逻辑处理界面。上面的id号为:include_content就是我们要把内容添加进入的容器,所以,当我去完成一个activity布局的时候可以不用考虑标题栏或是逻辑处理界面,专心于每个activity的内容。我使用了android 的ViewSwitch控件用来对界面的显示或隐藏的状态切换,值得注意的是viewSwitch下的自控见都必须先隐藏。我还为这个控件添加了动画效果。
下一步是在actvity的是如何使用的,我把layout_common作为每个界面内容的父类,设置显示加载进度条进行等待。switcher.showNext();就可以显示下一个内容界面了。
<span style="white-space:pre"></span>protected void onCreate(android.os.Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.layout_common);View layout = View.inflate(this, R.layout.activity_news, null);ViewGroup include_content= (ViewGroup) findViewById(R.id.include_content);switcher = (ViewSwitcher) findViewById(R.id.profileSwitcher);include_content.addView(layout);
<span style="white-space:pre"></span>switcher.setDisplayedChild(0);};以上就是我在数据加载到数据显示到界面的转场处理核心原理,很简单。下面还附上我的具体的小案例
http://download.csdn.net/detail/iwantyousafe/8419377
- 通过viewSwitch实现加载进度条到内容显示的转场处理
- 加载窗体显示一个进度条的实现
- 链接A通过js加载内容到iframe,链接不显示地址问题,target的用法
- 通过Handler实现先显示进度条,后台进行数据处理,处理结束后取消进度条
- 通过Handler实现先显示进度条,后台进行数据处理,处理结束后取消进度条
- Android ViewSwitch自适应显示的view的高度
- 通过BackgroundWorker实现进度条的显示,并将进度显示在进度条上
- 页面加载的进度条显示
- WebView 加载数据时显示进度条,加载完后再把进度条取消并显示内容
- ajax实现页面加载进度条显示
- asp.net 实现进度条 用来显示加载进度或程序处理进度
- iOS自定义转场详解03——实现通过圆圈放大缩小的转场动画
- 通过网络加载数据显示到ListView
- 页面加载进度条显示
- 加载进度条显示 NJKWebViewProgress
- 页面加载显示进度条
- webView加载进度条显示
- Swift中tableView加载通过xib创建的headerView时,无法显示xib视图内容.
- ~`~学习网址连接
- 设计模式-策略模式
- 各种排序方法
- 【转】Android中<meta-data>的使用
- android之apk如何防止被反编译
- 通过viewSwitch实现加载进度条到内容显示的转场处理
- Zoj 3707 calculate prime s
- Android MP3录音实现
- 文字颜色渐变与动画原理(仅webkit)
- PowerDesigner ER图简单教程
- 手把手陪你搭建Windows Server 2012 + SQL SERVER 2014群集(之创建群集准备)
- 知名网站的技术实现(http://www.kuqin.com/web/20130703/334631.html)
- iOS Crash文件的解析
- window vs编译并使用Boost库