美文网首页
List加入headView后点击position错乱有关问题

List加入headView后点击position错乱有关问题

作者: WiiHuu | 来源:发表于2016-01-16 17:21 被阅读848次

    添加headview会换adapter

    1.从源码中可以分析得到,addHeaderView(View v, Object data, boolean isSelectable)方法

    @Override public void setAdapter(ListAdapter adapter) { if (null !=   mAdapter) {       mAdapter.unregisterDataSetObserver(mDataSetObserver); } resetList(); mRecycler.clear(); if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) { mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos,     adapter); } else { mAdapter = adapter; } //其它的一些代码这里省略之... }
    
    • 当有headView的时候,就不能再用adapter.getItem(position),而需要通过parent获取到adapter,再进行操作,parent.getAdapter().getItem(position) 这样获取到的Item,就是我们想要的结果了。
    • addHeaderView()方法:主要是向listView的头部添加布局 addFooterView()方法:主要是向listView的底部添加布局

    可修正
    @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
    doSomething(parent.getAdapter().getItem(position)); }

    手动修正

    page=channel&keyword=listView).getHeaderViewsCount;//得到header的总数量 //得到新的修正后的position int newPosition = position - headerViewsCount。
    可参考这篇文章

    相关文章

      网友评论

          本文标题:List加入headView后点击position错乱有关问题

          本文链接:https://www.haomeiwen.com/subject/bknhkttx.html