ListView开发知识整理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/denglusha737/article/details/79712798

    listView在开发中使用的太多了,但是不少知识还是经常记不住,因今天把listView的一些方法和开发问题,统一整理记录下来。

  一、方法或属性

    1.stackFromBottom属性:true表示从列表底部开始向上排列。但要注意它是从上往下递增,新数据处在底部。

    

    2.setTranscriptMode:设置数据更新时,滑动模式。有三个值:

        alwaysScroll:更新,总是滚到最底部
        disabled:满页后更新,不滚动
        normal:最后一个item可见,更新时滚到最底部,否则不滚动。

  

    3.setSelectFromTop(position,y)与setSelection(position)

      (1)setSelectFromTop(position,y):精准定位,y表示选择的item到listView可见范围内最上边边缘的距离。

      (2)setSelection(position):内部也调用了setSelectFromTop,但是y轴偏移量为0,可以做到定位,但是解决不了某一个item部分不可见的情况。

        例:在做IM聊天页面的下拉刷新时,刷新成功后(有数据),需要把listView向上移动一个位置,以便让用户看到最新刷出来的数据,同时注意headView,设置偏移量。


二、注意事项:

    1.多Item类型时异常:数组下标越界

    解决:adapter的回调方法:getItemViewType(position)中,返回的值必须从0开始,依次增大,否则异常。


    2.列表中checkBox滑动后状态混乱

    解决:getView方法中先设置checkBox.setTag(index),将复选框与position关联,选中时通过getTag()方法获取当前复选框对应的位置。




猜你喜欢

转载自blog.csdn.net/denglusha737/article/details/79712798