首页 > 代码库 > !!!!!安卓界面总是显示加载进度条的问题,没事别乱用ListFragment
!!!!!安卓界面总是显示加载进度条的问题,没事别乱用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填充了内容,外面这个大的没有,所以才会有这个挥之不去的圆形进度条!!!
那怎么办?很简单,既然并不需要往这个最大的ListView中填充数据,那何必要用ListFragment 呢?完全可以用普通的Fragment嘛。
其实,之所以这里用的是ListFragment,完全是因为在做这个功能的时候,大部分代码都是从其他功能搬过来的,所以把ListFragment也搬了过来。
然后进行修改,让这个类继承普通的 Fragment 即可:
public class UploadInfoFragment extends Fragment { //注意,用普通的Fragment即可 private HashMap<String, Integer> monthQuantityMap; private HashMap<String, Integer> stationQuantityMap; ...}终于把讨厌的圆形进度条赶走了,问题解决!
总结:有些常见的问题,网上随便一查就有,但这些藏的比较深的问题,一般很难在网上直接查到,这个时候如果能仔细地取翻一翻书本,或许会有惊喜的发现~
另外,平时在看书的时候还是认真一点为好,这样,有些细节就能印在脑子里,说不定什么时候就派上用场了~
!!!!!安卓界面总是显示加载进度条的问题,没事别乱用ListFragment