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中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#f0f0f0"
    android:orientation="vertical" >

    <me.maxwin.view.XListView
        android:id="@+id/xListView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:cacheColorHint="#00000000" >
    </me.maxwin.view.XListView>

</LinearLayout>


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

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

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

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


对于以上有什么不足指出,请大家指出,我及时改正。互相学习。





  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值