XListView的介绍和使用


           在开发的过程中,我们使一般会经常使用ListView,那么就会用到下拉刷新和上拉加载,我下载了XListView的框架,然后仔细分析了里面的原理,并且在原来的基础之上,增加了自己的想法,希望大家给出宝贵的建议,互相学习和探讨。

  下载地址:http://download.csdn.net/detail/forwardyzk/7262781

          下面先大概介绍一下开发思路:

        







以上是基本类的大体的框架

      

     总结:

        1.使用了自定义控件,重写了继承系统类。把头部,底部,和控件本身进行了封装。

        2.在各个类进行操作的时候,使用了标记来表示不同的状态,然后对不同的状态的操作进行封装了方法。

        3.在调用的时候封装了回调函数。在控件的本身类进行回调函数的实现。

        4.增加了在静止的时候,使用了匿名滚动事件对象,判断了当前的系统没有给设置滚动事件对象,那么就使用匿名的,在显示的是最后一项并且是静止的时候,那么就自动调用加载更多方法。

       5.在处理顶部和底部不同状态时候,使用了LinearLayout.LayoutParams和setLayoutParams(lp)显示在不同的位置,并且使用了Scroller不断的控制控件滑动的位置。


  使用XListView的步骤。

    1.在XListViewActivity类中的onCreate()方法设置适配器,前提是自定义一个适配器(根据不同的需求进行优化),给mListView.setAdapter(mAdapter); 这你可以根据自己的设计,可以在不同的位置设置。

      总之一句话:给mListView设置适配器。

   2.重写onRefresh()方法,改变集合,然后更新适配器,这就是下拉刷新的操作

   3.重写onLoadMore()方法,改变集合,然后更新适配器,这就是加载更多的操作

      就这么简单使用完成了。



注意点:

     在main.xml中

[java]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:background="#f0f0f0"  
  6.     android:orientation="vertical" >  
  7.   
  8.     <me.maxwin.view.XListView  
  9.         android:id="@+id/xListView"  
  10.         android:layout_width="fill_parent"  
  11.         android:layout_height="fill_parent"  
  12.         android:cacheColorHint="#00000000" >  
  13.     </me.maxwin.view.XListView>  
  14.   
  15. </LinearLayout>  


一定要给XListView设置android:cacheColorHint="#00000000"属性

      原因是:ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉。滚动时,列表里面的view重绘时,用的依旧是系统默认的透明色,颜色值为#FF191919,那么设置android:cacheColorHint="#00000000"就不会出现背景为黑的情况。

正常状态:   点击后的状态:   移动后的状态。

要是避免设置情况,就要设置android:cacheColorHint属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值