近期的安卓应用快完工了。可是个别界面有瑕疵,怎么改动都解决不了。挥之不去的阴影。问题例如以下:

在界面上,数据已经载入完成了。可还是有一股圆形的进度条,感觉它老是在载入什么东西,严重影响界面美观:

1. 布局用的是LinearLayout

2.界面布局用的是RelativeLayout

各种方法都试过了,当然都是基于布局文件的改动,什么fill_parent啦,alignBotton啦,换不同的layout啦,各种属性试了个遍,都不行。为了这个布局问题整整折腾了三天。

反正。在布局文件上再怎么折腾可能都没戏了。

静下心来想想。问题会不会出在其它地方。而不是布局文件?

回忆起刚学Android那几天,照着书上的样例写,当中有提到ListView的部分。也提到了圆形的进度条。于是翻开书本,找到那个章节,忽然就柳暗花明了!

注意看照片中划线的文字:“当ListView没有内容能够显示时... ... 显示一个圆形进度条”。好吧,难道是问题出在应用的ListView?

那就来看看这个界面中的ListView是怎么回事:

<?

xml version="1.0" encoding="utf-8"?> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:id="@+id/fragmentContainer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" > <LinearLayout>
<--表头,忽略-->
</LinearLayout> <ListView
android:id="@+id/list_uploadinfo_1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:dividerHeight="1px"
android:divider="#B8B8B8" >
</ListView> <Button android:text="各网站上传数量图"/> <LinearLayout>
<--表头,忽略-->
</LinearLayout> <ListView
android:id="@+id/list_uploadinfo_2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:dividerHeight="1px" android:divider="#B8B8B8" >
</ListView> <Button android:text="每月上传数趋势图表"/> </LinearLayout>
</ScrollView>


结构上,有两个ListView,但他们都已经用数据填满了。不存在没有内容的问题。

那难道还有其它的ListView? 答案还真就是有其它的ListView,并且,是那个最大的ListView,却被我忽略了:

public class UploadInfoFragment extends ListFragment { //注意。是继承了ListFragment
private HashMap<String, Integer> monthQuantityMap;
private HashMap<String, Integer> stationQuantityMap;
...}

就是控制这个界面的Fragment。它继承了ListFragment,也就须要自己的ListView来展示内容。可是仅仅有刚才的两个内部ListView填充了内容,外面这个大的没有,所以才会有这个挥之不去的圆形进度条。!!

那怎么办?非常easy,既然并不须要往这个最大的ListView中填充数据,那何必要用ListFragment 呢?全然能够用普通的Fragment嘛。

事实上,之所以这里用的是ListFragment,全然是由于在做这个功能的时候,大部分代码都是从其它功能搬过来的,所以把ListFragment也搬了过来。

然后进行改动,让这个类继承普通的 Fragment 就可以:

public class UploadInfoFragment extends Fragment { //注意,用普通的Fragment就可以
private HashMap<String, Integer> monthQuantityMap;
private HashMap<String, Integer> stationQuantityMap;
...}

最终把讨厌的圆形进度条赶走了,问题解决!

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhvdXlpbmdnZTExMDQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

总结:有些常见的问题,网上随便一查就有,但这些藏的比較深的问题,一般非常难在网上直接查到。这个时候假设能细致地取翻一翻书本,也许会有惊喜的发现~

另外,平时在看书的时候还是认真一点为好,这样,有些细节就能印在脑子里。说不定什么时候就派上用场了~

!!!!!安卓界面总是显示载入进度条的问题,没事别乱用ListFragment的更多相关文章

  1. Unity发布WebGL时如何修改默认的载入进度条

    Unity发布WebGL版本后,需要去除Unity的Logo,首先关闭Splash Image去除Made with Unity启动画面(在File->Build Settings->Pl ...

  2. 【jQuery】页面顶部显示的进度条效果

    <!Doctype html> <html> <head> <title>页面顶部显示的进度条效果</title> <meta htt ...

  3. python实现显示安装进度条

    一直很好奇那种安装进度条,或者启动程序时候显示的进度条是怎么实现的,学习了python之后,sys模块中有个方法可以实现,代码如下:   1 2 3 4 5 6     import sys,time ...

  4. 怎样控制界面控件之进度条(ProgressBar)功能

    一.基础知识: 1.ProgressBar在界面文件XML中的布局: [html] <progressBar android:id="@+id/progressbar_updown&q ...

  5. HTML5 CSS3 诱人的实例 : 网页载入进度条的实现,下载进度条等

    今天给大家带来一个比較炫的进度条,进度条在一耗时操作上给用户一个比較好的体验,不会让用户认为在盲目等待,对于没有进度条的长时间等待,用户会任务死机了,毫不犹豫的关掉应用:一般用于下载任务,删除大量任务 ...

  6. thinkpad 睡眠唤醒后热键功能正常,但屏幕无法显示状态/进度条/图标

    由于博主比较习惯笔记本开盖即用,合盖即走,不大习惯开机关机(毕竟SSD速度杠杠滴^_^).可是发现笔记本长时间睡眠乃至休眠唤醒后,使用thinkpad热键,虽然可以调节,但屏幕不显示调节状态了.解决步 ...

  7. linux下命令行工具gcp显示拷贝进度条

    1.环境: ubuntu16.04 Linux jello 4.4.0-89-generic #112-Ubuntu SMP Mon Jul 31 19:38:41 UTC 2017 x86_64 x ...

  8. 网页载入进度条中的javascript

    demo地址:http://output.jsbin.com/buquyedosa 思路例如以下:代码都有凝视,就不一一介绍了. <!DOCTYPE html> <html> ...

  9. 拼接html不显示layui进度条解决方法

    最新有个新需求,要异步拼接html并渲染数据,并且我这边是用layui的flow.load(流加载)渲染多个进度条.按官网给出的 element.progress('demo', n+'%'); 就是 ...

随机推荐

  1. BZOJ 3373: [Usaco2004 Mar]Lying Livestock 说谎的牲畜( 差分约束 )

    枚举每头牛, 假设它在说谎, 建图判圈就行了...为啥水题都没人来写.. --------------------------------------------------------------- ...

  2. Qt实现不同Treewidget之间拖拽

    拖拽是编程中经常要用到的,我这里主要是实习了Treewidget之间直接拖拽Item,按下Ctrl键的话是copy,不按Ctrl则是Move.以下是实现代码 class TreeItemMimeDat ...

  3. 墙内安装nautilus-dropbox 1.6.0-2

    软件包:nautilus-dropbox 版本号:1.6.0-2 # aptitude install nautilus-dropbox # less `which dropbox` 查找到下载链接: ...

  4. html:打开新的页面

    在html页面中,打开一个新的页面,有两种方式: 一.利用超链接 <a href="newurl">新页面</a> 上面代码添加了一个新链接,点击链接时会打 ...

  5. 一、Mongo的安装

    注:学习为主,平台为WIN7 32位系统 一.Mongo的安装 1.1 下载 到官方下载地址(http://www.mongodb.org/downloads)去下载所需要的版本 1.2 安装与运行 ...

  6. keepavlied一些参数

    priority 表示优先级 virtual_ipaddress 虚拟的IP地址(VIP) delay_loop 每个2秒检查一次real_server状态 notify_down 检测到服务down ...

  7. 在uboot里面加入环境变量使用run来运行

    Author:杨正  Date:2014.11.11   Email:yz2012ww@gmail.com QQ:1209758756 在移植uboot的时候,能够在uboot里面加入定义一些自己的环 ...

  8. PHP - 日期与时间

    第10章 日期与时间 学习要点: 1.PHP日期和时间库 使用PHP编程时,与你遇到的大多数其他类型的数据相比,日期和时间有很大不同.因为日期和时间没有明确的结构,并且日期的计算和表示也很麻烦.在PH ...

  9. 反应堆Reactor

    mvn -h 可以看到很多命令及其用途:-am --also-make 同时构建所列模块的依赖模块:-amd -also-make-dependents 同时构建依赖于所列模块的模块:-pl --pr ...

  10. boost 循环缓冲区

    boost 循环缓冲区 #include <boost/circular_buffer.hpp> int _tmain(int argc, _TCHAR* argv[]) { boost: ...