列表中有滚动侦听器在加载新项

时间:2016-11-02 10:53:27

标签: java android api url scrollview

我有列表,我从API加载多个URL的数据,当一个URL被执行并添加到列表时,列表转到列表中的第一个项目,然后执行URL

2 个答案:

答案 0 :(得分:0)

列表可能会出现在顶部,因为您使用较少的对象来刷新它。您可以做的是首先保存列表的当前位置(滚动),加载新项目,然后将滚动设置回保存的位置。

确保保存的位置不大于列表大小,在这种情况下,您需要滚动到最后一项。

答案 1 :(得分:0)

这可能是因为每次从api获取新数据时都会启动适配器。

在activity中使用此代码。如果适配器为null,它将启动适配器,否则它只会更新数据

 if (list_delivery_charge.getAdapter() == null) {
    deliveryAdapter = new DeliveryAdapter(getActivity(), deliveryData1);
    list_delivery_charge.setAdapter(deliveryAdapter);
   } 
    else {
        deliveryAdapter.repopulateData(deliveryData1);
        }

在适配器类中使用它来更新数据

 public void repopulateData(ArrayList<DeliveryChargeData> data) {
    this.deliveryChargeData = null;
    this.deliveryChargeData = data;
    notifyDataSetChanged();
  }

这有助于我在每次将新项目添加到列表时停止将listview跳转到第一项。