我有列表,我从API加载多个URL的数据,当一个URL被执行并添加到列表时,列表转到列表中的第一个项目,然后执行URL
答案 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跳转到第一项。