ListView如何添加头部 底部 HeaderView+及各类问题


    首先,自我介绍下,本人从事Android开发不久,so...经验还是远远谈不上高深,仅仅是初入茅庐,水平有限,不免有误,请各位(读者、专业人士)指出,不胜感激……以下只是自己实际开发中遇到的问题(顺便吐槽下国内各大搜索平台.呵呵,不想解释,有时遇到问题在网上搜索几天都找不到一个能说到点子上的,即使很多帖子都是相互copy相互借鉴,至于为什么无力解释,就搜索模式来说如果前者还不转型,不就将来必然会被新的取代,可惜我大Google何时归?甚是思念....)

        好,我们切入正题.今天为大家讲一下  关于Listview  如何添加头底部问题

             addHeaderView()方法:主要是向listView的头部添加布局

             addFooterView()方法:主要是向listView的底部添加布局

                举例: 

             1:比如我们想在listview  上面添加一个ViewPager 图片切换的问题  

             2:比如我们在listview添加一个头部框(纯填充布局或者图片等)  今天我们重点讲下这个问题 因为两个问题本质是一样的

             3:还有其他  等以后开发遇到后我在一 一列举


       针对于第二种问题: 是我时间项目中开发遇到的   需求就是 : 在标头布局和listview之间会有一个小型头部匡  随着listview向上拉头布局渐渐消失  当然很多人看到这里都觉得这是一个特别简单问题,那么我只想说作为一个初学者来说,就是这个问题  可能也会困惑我们几天.  解决如下:

             首先我们肯定要会使用Listview 这点无需多说, 对Listview 的adapter机制也要了解;如果这些懂了 我们接着看

不懂的,请学习后再来.

       1:如何获取的头布局: 
            例如我们想要添加一个  ImageView 

     布局初始化时获取我们要注入的头布局

  

            拿到我们要添加的头布局   这里我们按照只添加一个头布局算    头布局包含一个填充ImageView

             可能需求中我们还会遇到   头布局中有可能会有Button   TextView  等   其实道理是一样的    如果这样 你需要注意的是如何解决Button点击和listview条目点击冲突问题 这些都不难   应该能搜到 这里我都不说明了  以后有时间再整理一下.

   重点来了

        2:何时何地我们去添加这个头布局

   

              看到上图了吧  我是在setAdapter时候addHeaderView  这里需要重点注意的是mListview.addHeaderView一定要放在mListview.setAdapater  前面

      原因:  如果讲细点话 说真的对于初学者来说一时半会无法接受  也比较懵逼  那么现在你就简单的记住因为listview在adapter的之

前会检查时候添加了头布局  如果有就添加没有就不添加  所以addHeaderView必须要放在setAdapter之前  这样理解应该懂了吧

这些都是android运行机制   没不要搞太懂 以后见多了 自己再去了解   会更好  现在只要懂大概意思就行 深奥的慢慢学习.

     图上勾选三个参数    第一个就是你要添加的头布局   第二个不管 null        第三个是  你是否让添加的头布局可点击   false是不可点击;你会不会问我可点击怎么办?


      3:点击事件处理     

   这里的点击事件是指listview  item的点击事件,当我们处理完上面两步之后  感觉很简单  想要的效果也基本达到了

   但是有个情况要说明 很多情况下  我们listview中的数据是动态获取的    然后点击跳转另一个页面,然后突然发现.

我擦,数据不对,  貌似错位了,想了半天知道原因出在哪里就是不知道怎么解决,

    其实道理很简单 我们自定义adapter里面的getitem方法里面返回的position是不包括header的,是我们自定义adapter中数据position下标从0开始,也就是说与我们传进去的list的位置是一样的,好吧这个为也很绕 ,说白了就是返回的postion不包括header 而

listView的条目包含了  所以位置错位了

那么如何解决?????????????\



               哈哈哈是不是很简单  就在点击事件中加一句话   让postion-1  就行了  因为你添加了一个头部 这个头部是postion所在的0的位置  (说白了就是我点击的和返回的postion不一样   这个自己想想)   那么你会不会问我如果添加两个头布局怎么处理??????????

 


















    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值