在MapFragment中更改相机时更新listFragment

时间:2015-06-05 14:39:38

标签: android android-viewpager android-listfragment mapfragment

我有一个带有两个片段的应用程序,我想实现ViewPager和ActionBarTabs。我的问题是:每当用户在我的MapFragment中移动相机时,有没有办法重新创建我的ListFragment?每次移动都会为我用来填充ListFragment的数组分配不同的值。我看过这个链接Synchronize all the ListView in a ViewPager,但看起来太复杂了。请帮忙。 考虑到我不能在适配器上使用notifyDataSetChanged(),因为我想保持我的MapFragment原样,而不是重新创建它。

1 个答案:

答案 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而不影响地图。每当用户在地图片段中移动相机时调用此方法。