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

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

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

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;
	...}
最终把讨厌的圆形进度条赶走了,问题解决!




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

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


原文地址:https://www.cnblogs.com/zfyouxi/p/5128112.html