通用加载框-JLoadDialog
来源:互联网 发布:中国地图编辑软件 编辑:程序博客网 时间:2024/05/18 05:27
当我们在手机端发出一个请求,或者进行一个耗时操作的时候,弹出一个等待框无疑是一项较好的体验。现在我们就来开发一个通用的加载框-JLoadDialog,这里我们自定义一个View并且继承自DialogFragment,因为DialogFragment在横竖屏切换的生命周期中处理了数据的存储,也是官方推荐替代Dialog的控件。
在DialogFragment中我们主要使用到onCreateView和onCreateDialog方法,在onCreateView中我们可以inflate一个布局,来填充跟布局,以实现自定义布局。onCreateDialog方法中我们可以手动添加控件,最主要的是DialogFragment中可以添加Dialog控件,基本上在这个方法中就可以实现。
public Dialog onCreateDialog(Bundle savedInstanceState) { setCancelable(false); ProgressBar progressBar = new ProgressBar(getContext()); return new AlertDialog.Builder(getContext()).setView(progressBar) .create(); }
这样我们创建了一个包含ProgressBar的DialogFragment,并且设置不可取消,这样用户必须等待加载完成才能操作,减少一些意外的情况。我们在接口请求的时候,请求时间有长有短,长时间的请求这样使用没有问题,如果耗时很短的请求,我们就会发现界面由黑变白闪烁了一下,这样体验不是很好,所以我们把DialogFragment改成背景透明、全屏。此时不能在onCreateDialog中 设置,因为此时还未创建Dialog,我们需要在onStart中完成:
public void onStart(){ super.onStart(); if(getDialog() != null) { Window window = getDialog().getWindow(); if(window != null) { // 设置全屏 window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); WindowManager.LayoutParams attributes = window.getAttributes(); // 设置背景透明 attributes.dimAmount = 0; window.setAttributes(attributes); } }}
最后就是在需要等待的时候调用:
final JLoadDialog dialog = new JLoadDialog();dialog.show(getSupportFragmentManager(), getClass().getSimpleName());new Handler().postDelayed(new Runnable(){ @Override public void run() { dialog.dismiss(); tv.setText("加载完成"); }}, 5000);
看一下效果:
阅读全文
0 0
- 通用加载框-JLoadDialog
- 通用页面加载进度条
- H2通用缓存加载
- Android网络加载通用LoadingView
- H2通用缓存加载(3)——通用配置
- ///通用的加载插件的代码:转贴
- hibernate的延迟加载通用方法
- 如何加载通用语言运行时?
- Mapinfo加载图片文件通用类
- 使用FreeImage写通用图像加载器
- FreeImage通用文件加载与转换器
- 使用FreeImage写通用图像加载器
- FreeImage通用文件加载与转换器
- jquery.lazyloading图片延迟加载插件,通用
- 动态加载配置文件类,通用类
- 通用工具类-异步加载图片&缓存提取
- 自己写jquery.lazyloading图片延迟加载插件,通用
- android下拉刷新上拉加载更多通用Demo
- ThinkPHP分页链接支持数组参数的办法
- 《Windows核心编程》读书笔记十八章 堆
- 2017年12月6日17:42:59
- 欧几里德求最大公约数/最小公倍数
- 在springmvc的web项目的jsp文件中引用jquery
- 通用加载框-JLoadDialog
- FastJson常用的三个对象
- 获取字符串<img>中src地址
- 強制PHP
- SpringBoot之数据缓存Cache操作
- Windows下QT中用C++调用Python之二
- 投资项目经济效益敏感性分析
- 鲁班•匠心,商派第四代企业互联网商业平台发布会
- java UTF8ToGB2312