我有一个带有两个片段的应用程序,我想实现ViewPager和ActionBarTabs。我的问题是:每当用户在我的MapFragment中移动相机时,有没有办法重新创建我的ListFragment?每次移动都会为我用来填充ListFragment的数组分配不同的值。我看过这个链接Synchronize all the ListView in a ViewPager,但看起来太复杂了。请帮忙。 考虑到我不能在适配器上使用notifyDataSetChanged(),因为我想保持我的MapFragment原样,而不是重新创建它。
答案 0 :(得分:0)
您可以尝试使用类似的更新方法创建接口
public interface UpdatingFragment {
public void update();}
然后让ListFragment实现此接口。并在update方法中重新创建ListFragment中的列表。
public class MyListFragment extends ListFragment implements UpdatingFragment{
@override
public void update(){
//whatever code you use to update your fragment
}
然后从PagerAdapter
调用此方法@Override
public int getItemPosition(Object item) {
if (item instanceof UpdatingFragment) {
((UpdatingFragment) item).update();
}
//don't recreate fragment
return super.getItemPosition(item);
}
现在,如果你在viewpager适配器上调用notifyDataSetChanged(),它应该有希望更新你的ListFragment而不影响地图。每当用户在地图片段中移动相机时调用此方法。