PullToRefreshListView 局部刷新问题

来源:互联网 发布:vb select语句 编辑:程序博客网 时间:2024/05/20 01:08

PullToRefreshListView 局部刷新问题

我的需求是需要添加一个headview的:此处listview就是PullToRefreshListView实例对象

listview.getRefreshableView().addHeaderView(headView);

局部刷新:
最关键的获取对应position的view

int visiblePosition = listview.getRefreshableView().getFirstVisiblePosition();View view = listview.getRefreshableView().getChildAt(itemIndex - visiblePosition + 2);//如果需求没有Headview 此处的+2只要改成+1就行了,因为PullToRefreshListView本身的刷新布局是一个headview,所以至少要+1。参数itemIndex:你想改变布局的position,直接传position就行了

上面的view就是position对应的view,具体这两句代码怎么用呢?直接自定义一个方法,写在自定义适配器里面就行了,下面是我写的一个方法

public void updateViewForClick(int itemIndex, boolean ifPlay)        {            if (listview == null || itemIndex < 0                    || itemIndex >= dayList.size()) { return; }            // 如添加headerview后 firstview就是hearderview            // 所有索引+1 取第一个view            // 获取点击的view            int visiblePosition = listview.getRefreshableView()                    .getFirstVisiblePosition();            View view = listview.getRefreshableView().getChildAt(                    itemIndex - visiblePosition + 2);//这里+2是因为PullToRefreshListView  刷新布局 算一个Headview,而我本身需求又添加了一个headview, 如果仅仅只是PullToRefreshListView的刷新布局  这里+1就行了            if (view != null)//对View进行操作,这里换成你自己的需求            {                ImageView btnplay = (ImageView) view.findViewById(R.id.btnplay);                TextView txttitle = (TextView) view.findViewById(R.id.txttitle);                ImageView imgstate = (ImageView) view                        .findViewById(R.id.imgstate);                // if (txttitle != null)                // {                // txttitle.setTextColor(Color.parseColor("#999999"));                // }                // if (imgstate != null)                // {                // imgstate.setImageResource(R.drawable.icon_audio_everyday_played);                // }                if (btnplay != null)                {                    if (ifPlay)                    {                        btnplay.setImageResource(R.drawable.icon_audio_everyday_topause);                    }                    else                    {                        btnplay.setImageResource(R.drawable.icon_audio_everyday_toplay);                    }                }            }        }