java - 当viewpager重新启动时,它会继续执行之前的fragment

标签 java android android-fragments android-viewpager

该 Activity 有一个 homeFragment,其中包含 viewPager

如果我刷新 homeFragmentviewPager 也会使用新数据重新生成。

但是在创建适配器之前,viewPager 中的旧 fragment 会被重新执行。

即使我用谷歌搜索也没有得到明确的答案

<强>1。 homeFragment刷新代码:

Fragment currentFragment = null;
currentFragment = getSupportFragmentManager().findFragmentById(R.id.content_frame);
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

ft.detach(currentFragment);
ft.attach(currentFragment);
ft.commit();

<强>2。适配器

public class ChartViewPagerAdapter extends FragmentStatePagerAdapter {

   public ChartViewPagerAdapter(FragmentManager fm) {
      super(fm);
   }

   @Override
   public Fragment getItem(int i) {
      ChartFragment chartFragment = new ChartFragment();
      Bundle args = new Bundle();
      args.putInt("POSITION", i);
      chartFragment.setArguments(args);

      return chartFragment;
      //return ChartFragment.newInstance(i);
   }

   @Override
   public int getCount() {

       switch (MainActivity.countryCode) {
          case "US":
            return 4;
          case "KR":
            return 3;
          case "DE":
            return 3;
          case "JP":
            return 1;
          case "CN":
            return 1;
          case "HK":
            return 1;
          case "FR":
            return 3;
          case "GB":
            return 2;
          default:
            return 3;
       }
   }
}
  • 最接近的方法是执行 viewpager.setSaveParentEnlaled (false); 时,但是如果我看到日志记录,它会再次调用相同的代码多次,因此我收到错误消息。

  • 如果我将刷新方法更改为立即运行homeFragment中的方法而不使用分离/附加方式,这不是问题,但设计应该使用分离/附加方式

  • 最佳答案

    您必须调用

    viewpager.setAdapter(null)
    

    或者在 kotlin 中

    viewpager.adapter = (null)
    

    它将把 ViewPager 重置到开始位置。

    关于java - 当viewpager重新启动时,它会继续执行之前的fragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55683385/

    相关文章:

    java - 使用 GSON 解析 JSON 文件

    java - 有 Android Wear 短信 Intent 吗?

    android - 列出所选帐户支持的权限

    android - Twilio Android 应用程序错误 - AUDIO_OUTPUT_FLAG_FAST

    android - Fragment Transition 和 Alpha 问题

    java - 如何将spring数据jpa规范查询中的distinct和sort与join结合起来

    java - 多重更新仅适用于 jdbc 中的查询之一

    android - Android 中的自动滑动图像

    java - Android - 替换运行 fragment

    android - 从 getItemPosition 更新 ViewPager 中的 fragment