【问题标题】:Lifecycle of tabs in AndroidAndroid中标签的生命周期
【发布时间】:2016-10-24 13:03:04
【问题描述】:

我正在使用 TabLayout 和 ViewPager 来实现 5 个选项卡作为主/详细布局的详细视图。

当我单击主视图中的某个项目时,它会创建我的详细视图,这反过来会创建必要的选项卡。创建详细视图时,将调用选项卡的 onResume() 方法。 当我回到主视图时,会调用详细视图的 onPause(),但不会调用选项卡的 onPause()

这是一个问题,因为我在每个选项卡的 onResume() 方法中订阅了事件,但是应该在每个选项卡的 onPause() 中完成的取消订阅永远不会发生。

因此,如果我在主视图中的项目上单击 n 次,则订阅完成 n 次,每个事件处理 n 次。

我试过这个解决方案https://looksok.wordpress.com/2013/11/02/viewpager-with-detailed-fragment-lifecycle-onresumefragment-including-source-code/ 我在一个 SO 答案中找到了,但它不起作用,因为 onFragmentPause() 中的片段 ID(Id 0)与 onFragmentResume() 中的片段 ID 不同(因此 onFragmentPause() 中的订阅为空)。

我不明白如何让标签片段在每次单击项目时都不重复,或者如何让它们调用其 onPause() 方法。

【问题讨论】:

    标签: android android-fragments tabs android-lifecycle fragment-lifecycle


    【解决方案1】:

    AndroidDev 中所述,在处理嵌套片段时应该调用 getChildFragmentManager() 而不是 getSupportFragmentManager()。

    我对视图寻呼机适配器使用了错误的方法。 我把它改成:

    adapter = new PagerAdapter(getChildFragmentManager(), tabLayout.getTabCount());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-14
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多