当 MapFragment 中的相机发生变化时更新 listFragment
Update listFragment when camera changes in MapFragment
我有一个包含两个片段的应用程序,我想为其实现 ViewPager 和 ActionBarTabs。我的问题是:每次用户在我的 MapFragment 中移动相机时,有没有办法重新创建我的 ListFragment ?每个移动都会为我用来填充 ListFragment 的数组分配不同的值。我看过这个 link Synchronize all the ListView in a ViewPager 但它看起来太复杂了。请帮忙。
考虑到我不能在适配器上使用 notifyDataSetChanged(),因为我想保持我的 MapFragment 不变而不是重新创建它。
您可以尝试使用像这样的更新方法制作接口
public interface UpdatingFragment {
public void update();}
然后让你的ListFragment实现这个接口。并在更新方法中重新创建 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。每次用户在地图片段中移动相机时调用此方法。
我有一个包含两个片段的应用程序,我想为其实现 ViewPager 和 ActionBarTabs。我的问题是:每次用户在我的 MapFragment 中移动相机时,有没有办法重新创建我的 ListFragment ?每个移动都会为我用来填充 ListFragment 的数组分配不同的值。我看过这个 link Synchronize all the ListView in a ViewPager 但它看起来太复杂了。请帮忙。 考虑到我不能在适配器上使用 notifyDataSetChanged(),因为我想保持我的 MapFragment 不变而不是重新创建它。
您可以尝试使用像这样的更新方法制作接口
public interface UpdatingFragment {
public void update();}
然后让你的ListFragment实现这个接口。并在更新方法中重新创建 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。每次用户在地图片段中移动相机时调用此方法。