因为每次item的数据比较多,调用listView.setadapter()以后它都从第一个数据开始显示.
网上有一种解决方案就是先获取动作前的item位置listView.getFirstVisiblePosition();
刷新以后在用listView.setSelection设置回来,但这种效果不是很理想,当item项只在可见
区域显示半行的时候,还是会有位移。请问各位大侠有木有更好的办法?

解决方案 »

  1.   

    为什么不用adapter的notifydatasetChange 方法?
    notifydatasetChange  会自动刷新listview , 不会出现你说的情况,每次数据改变就去setAdapter 是很不好的做法。
      

  2.   

    adapter的notifydatasetChange 方法
      

  3.   

    你这样每次都要new一个adapter对象的。。List list=new ArrayList;
    Adapter adapter=new Adapter(this,list)
    listview.setadapter(adapter)
    你需要做的就是更新list
    然后adapter.notifydatasetChange 
    仅此而已
      

  4.   

    怎么没有效果adapter.notifydatasetChange 需要什么条件吗?