找回密码
 立即注册
问题
我无法在分片页面雷达中重用分片。 .使用 destroyItem() 方法,它正在删除片段,但仍然没有再次调用 getItem()。只有 2-3 个图像,所以我使用 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter。 .

  1. public class ExamplePagerAdapter extends FragmentPagerAdapter {

  2.     ArrayList < String > urls;
  3.     int size = 0;
  4.     public ExamplePagerAdapter(FragmentManager fm, ArrayList < String > res) {
  5.         super(fm);
  6.         urls = res;
  7.         size = urls.size();
  8.     }

  9.     @Override
  10.     public int getCount() {
  11.         if (urls == null) {
  12.             return 0;
  13.         } else {
  14.             return size;
  15.         }

  16.     }

  17.     @Override
  18.     public void destroyItem(ViewGroup container, int position, Object object) {
  19.         FragmentManager manager = ((Fragment) object).getFragmentManager();
  20.         FragmentTransaction trans = manager.beginTransaction();
  21.         trans.remove((Fragment) object);
  22.         trans.commit();
  23.     }

  24.     @Override
  25.     public Fragment getItem(int position) {

  26.         Fragment fragment = new FloorPlanFragment();
  27.         Bundle b = new Bundle();
  28.         b.putInt("p", position);
  29.         b.putString("image", urls.get(position));
  30.         Log.i("image", "" + urls.get(position));
  31.         fragment.setArguments(b);
  32.         return fragment;
  33.     }
  34. }
复制代码

在碎片化活动中,

pager.setAdapter(new ExamplePagerAdapter(getSupportFragmentManager(), res2));

回答
接吻答案:

只需使用 FragmentStatePagerAdapter 而不是 FragmentPagerAdapter。

我得到了答案。 .首先,我想删除这个问题,因为我犯了一个非常愚蠢的错误,但这个答案将帮助面临同样问题的人,而不是使用 FragmentPagerAdapter 。

正如评论中提到的@blackhatsumurai:

FragmentStatePagerAdapter

FragmentStatePagerAdapter





上一篇:task.getResult().getDownloadUrl().toString() 方法不起作用
下一篇:在不执行请求的情况下合并 github.com 上的分支?