zoukankan      html  css  js  c++  java
  • !!!!!安卓界面总是显示载入进度条的问题,没事别乱用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;
    	...}
    最终把讨厌的圆形进度条赶走了,问题解决!




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

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


  • 相关阅读:
    入职外包一个月的感受!(读者投稿)
    作为架构风格的 REST 到底是什么
    PHP基础之查找
    PHP基础之排序
    PHP入门之数组
    PHP入门之函数
    PHP入门之流程控制
    PHP入门之类型与运算符
    DC-1靶机实战和分析
    【基础算法】 状态压缩DP---蒙德里安的梦想
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5128112.html
Copyright © 2011-2022 走看看